SQL Server 2008 mise à Jour de la Requête avec Jointure et la clause where dans la table jointe

Ne sais pas pourquoi cela ne fonctionne pas:

UPDATE 
    ust
SET  
    ust.isUnsubscribedFromSystemEmails = 1
FROM         
    UserSetting AS ust 
INNER JOIN
    [User] ON ust.userID = [User].userID 
AND 
    [User].emailAddress IN (SELECT emailAddress FROM BadEmailAddresses)

En clair, je suis en train de mettre la isUnsubscribed champ de désabonné où la userID dans le UserSetting tableau est égale à la userID dans la table user et où la emailAddress dans la table utilisateur n'est pas dans une liste d'e-mails à partir d'une autre table. Je peux courir un select sur la isUnsubbed colonne en utilisant à peu près la même syntaxe et il fonctionne bien? merci!

P. S. j'ai regardé d'autres questions similaires ici et la syntaxe semble le même, mais évidemment, je suis en manque de quelque chose.

  • pourquoi il ne fonctionne pas ? avez-vous un message d'erreur (si oui, quel est le message?) ou vous n'avez pas les résultats escomptés (si oui, quels sont les résultats obtenus ?)?
  • Désolé excellente question! Il n'a pas d'analyser la requête..
  • appuyez sur entrée par erreur. Colonne ou de l'expression 'isUnsubscribedFromSystemEmails' ne peut pas être mis à jour. Les colonnes existe et est accessible en écriture.. pas de problème d'autorisations.. et puis je reçois quelques autres trucs et le message d'erreur : nom d'objet non valide 'ust'. UserSetting table existent, c'est certain! Sélectionnez en utilisant les mêmes joindre et où la clause donne des résultats corrects
  • où la emailAddress dans la table utilisateur est pas dans une liste d'e-mails à partir d'une autre table" - voulez-vous dire BadEmailAddresses, et si oui, voulez-vous dire "et où l' emailAddress dans la table user est dans une liste d'e-mails à partir de BadEmailAddresses "?
  • Juste un commentaire concernant le nom de la colonne 'isUnsubscribedFromSystemEmails'. En plus d'être un peu long, j'essaie d'éviter les noms. Je préfère quelque chose comme "SendSystemEmails'
  • salut Paul, je trouve que vous ne pouvez jamais être assez explicite avec les noms. Ce que ne pas le rendre agréable et descriptif? Comme les noms des entités cela aide les développeurs à comprendre ce que les propriétés n'sans deviner. Comme pour le négatif noms. je suis d'accord.. mais dans ce cas, il est négatif si ils unsub! ;')

InformationsquelleAutor toddm | 2010-09-20