2010-09-07 4 views
1

Salut à tous, y a-t-il un gourou SQL Server 2005 qui peut me dire un type d'astuce pour obtenir les valeurs de ce qui est interrogé?Aide sur la valeur de SQL Server

Ex:

UPDATE l SET Inactive = 1 
FROM tbl1 e JOIN tbl2 l ON l.CID = e.CID 
    JOIN tbl3 p ON p.PID = e.PID 
    JOIN tbl4 c ON c.PID = e.PID 
    LEFT JOIN tbl5 g ON g.EID = e.ID 
     AND g.PID = e.PID 
WHERE e.PID = '315' 
AND Inactive = 0 
AND (e.Active = 0 OR g.ID IS NULL) 

Comment puis-je obtenir les valeurs de, disons, e.CID après exécute? J'ai déjà essayé

Print e.CID 

Mais bien sûr cela ne fonctionne pas. Un autre moyen de le faire?

Merci!

David

+4

Essayez-vous de voir quelles lignes sont utilisées pour mettre à jour votre table? Y at-il une raison pour laquelle vous ne pouvez pas simplement exécuter le code ajusté pour utiliser SELECT au lieu de UPDATE? –

Répondre

3

Essayez la clause SORTIE:

UPDATE l 
SET Inactive = 1 
OUTPUT e.CID 
FROM tbl1 e 
    JOIN tbl2 l ON l.CID = e.CID 
    JOIN tbl3 p ON p.PID = e.PID 
    JOIN tbl4 c ON c.PID = e.PID 
    LEFT JOIN tbl5 g ON g.EID = e.ID AND g.PID = e.PID 
WHERE e.PID = '315' 
AND Inactive = 0 
AND (e.Active = 0 OR g.ID IS NULL) 

Cela devrait montrer la colonne e.CID pour chaque ligne étant mise à jour en jeu de résultats de votre recherche UPDATE.