SQL de mise à jour des lignes dans la colonne à l'aide de CAS

J'ai deux tables, les Utilisateurs et les #TempTable (qui est un sous-ensemble d'Utilisateurs). Je voudrais mettre à jour une colonne, est actif, dans la table des Utilisateurs. Je voudrais vous est actif = 1 si un utilisateur qui est dans #TempTable est aussi dans la table des Utilisateurs, et l'ensemble est actif = 0 sinon.

Obtenir les utilisateurs des utilisateurs qui ne sont PAS dans #TempTable (est actif doit être mis à 0 pour ces utilisateurs):

-- (Users \ #TempTable) U (#TempTable \ Users)
SELECT  u.UserName
FROM    Users u 
WHERE   (u.UserName) NOT IN 
    (SELECT t.[User Name] FROM #TempTable t) 
UNION ALL 
SELECT  t.[User Name] 
FROM    #TempTable t
WHERE   (t.[User Name]) NOT IN 
    (SELECT u.UserName FROM Users u)

Appelons cela le jeu de résultats. J'apprécierais un peu d'aide avec mon instruction de mise à JOUR. Ce que j'aimerais être capable de le faire est:

UPDATE Users
SET IsActive = (CASE WHEN User.UserName IN ResultSet THEN 0 ELSE 1 END) 

sans avoir à écrire le CAS LORSQUE, pour chaque Utilisateur.Nom d'utilisateur. Merci à l'avance!

OriginalL'auteur Will Weld | 2013-01-17