En vrac à Jour de l'Enregistrement avec SQL
J'ai deux tables dans SQL Server 2008 de l'environnement avec la structure suivante
Table1
- ID
- DescriptionID
- Description
Table2
- ID
- Description
Table1.DescriptionID cartes de Table2.ID. Cependant, je n'ai pas besoin de plus. Je voudrais faire une mise à jour en bloc à l'ensemble de la propriété Description de la table 1 à la valeur qui lui est associée dans la Table2. En d'autres termes je veux faire quelque chose comme ceci:
UPDATE
[Table1]
SET
[Description]=(SELECT [Description] FROM [Table2] t2 WHERE t2.[ID]=Table1.DescriptionID)
Cependant, je ne suis pas sûr si c'est l'approche appropriée. Quelqu'un peut me montrer comment faire cela?
Vous devez vous connecter pour publier un commentaire.
Faire:
UPDATE thisTableCannotHaveAnAlias
) ...UPDATE table_alias
"table_alias: L'alias spécifié dans la clause from représentant la table ou de la vue à partir de laquelle les lignes sont mises à jour."Votre approche est OK
Peut-être un peu plus clair (pour moi en tout cas!)
À la fois, votre requête doit exécuter la même performance sage parce que c'est la même requête, disposés différemment.
Vous pouvez le faire par un régulier
UPDATE
avec unJOIN
SET
clause ...Ou vous pouvez simplement mettre à jour sans l'aide de rejoindre comme ceci:
Vous SQL vous avez posté votre question est une façon de le faire. La plupart des choses dans SQL ont plus d'une façon de le faire.
Si vous envisagez sur l'exécution de ce sur une PROD DB, il est préférable de créer un instantané ou un miroir de premier et de le tester. vérifier que les données se termine comme vous vous attendez pour un couple enregistrements. Et si vous êtes satisfait, l'exécuter sur le réel DB.