Je veux mettre à jour une colonne dans une table faisant une jointure sur une autre table par exemple :
Mais il se plaint :
Ce qui ne va pas ici ?
Je veux mettre à jour une colonne dans une table faisant une jointure sur une autre table par exemple :
Mais il se plaint :
Ce qui ne va pas ici ?
Réponse donnée ci-dessus par Aaron est parfait:
UPDATE a
SET a.CalculatedColumn = b.[Calculated Column]
FROM Table1 AS a
INNER JOIN Table2 AS b
ON a.CommonField = b.[Common Field]
WHERE a.BatchNo = '110';
Veux juste ajouter que la cause de ce problème dans SQL server lorsque nous essayons d'utiliser l'alias d'une table pendant la mise à jour de la table ci-dessous décrivent la syntaxe donnera toujours l'erreur:
update tableName t
set t.name = 'books new'
where t.id = 1
le cas peut être n'importe si vous êtes à la mise à jour d'une table unique ou la mise à jour tout en utilisant la rejoindre.
Bien que la requête ci-dessus fonctionnera très bien en pl/sql, mais pas dans ms sql.
bonne façon de mettre à jour une table lors de l'utilisation d'alias de table dans MS SQL est:
update t
set t.name = 'books new'
from tableName t
where t.id = 1
J'espère que ça aidera tout le monde pourquoi erreur est venu ici.
Une autre approche serait d’utiliser MERGE
-Fusion fait partie de la norme SQL (bien que je ne pense pas que du CTE sont)
-Aussi, je suis sûr que les mises à jour de jointure interne sont non déterministes... Question similaire ici où la réponse parle de cette http://ask.sqlservercentral.com/questions/19089/updating-two-tables-using-single-query.html
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.