Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour plusieurs tables dans une seule instruction SQL Server 2005 ?

Comment puis-je mettre à jour plusieurs tables dans une seule instruction SQL Server 2005 ?

Linda Hamilton
Libérer: 2025-01-20 14:54:12
original
439 Les gens l'ont consulté

How Can I Update Multiple Tables in a Single SQL Server 2005 Statement?

SQL Server 2005 : mettre à jour efficacement plusieurs tables

SQL Server 2005 ne prend pas directement en charge la mise à jour de plusieurs tables au sein d'une seule instruction. Cependant, deux stratégies efficaces y parviennent : les transactions et les mises à jour par lots.

Méthode 1 : mises à jour transactionnelles

Les transactions assurent l'atomicité ; toutes les mises à jour réussissent ou aucune ne réussit. Un échec de mise à jour annule toutes les modifications. Utilisez BEGIN TRANSACTION et COMMIT pour gérer cela :

<code class="language-sql">BEGIN TRANSACTION;

UPDATE Table1
SET Table1.LastName = 'DR. XXXXXX'
FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id
WHERE T1.id = '011008';

UPDATE Table2
SET Table2.WAprrs = 'start,stop'
FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id
WHERE T1.id = '011008';

COMMIT;</code>
Copier après la connexion

(Remarque : l'exemple d'origine utilisait des jointures implicites. Cet exemple révisé utilise un INNER JOIN explicite pour plus de clarté et une meilleure lisibilité.)

Méthode 2 : mises à jour par lots

Les mises à jour par lots exécutent plusieurs instructions en un seul appel à la base de données, ce qui améliore potentiellement les performances. Utilisez l'instruction GO comme délimiteur :

<code class="language-sql">BEGIN TRANSACTION;

UPDATE Table1
SET Table1.LastName = 'DR. XXXXXX'
FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id
WHERE T1.id = '011008';

GO

UPDATE Table2
SET Table2.WAprrs = 'start,stop'
FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id
WHERE T1.id = '011008';

COMMIT;</code>
Copier après la connexion

La commande GO sépare les mises à jour en un seul lot pour exécution. N'oubliez pas que GO est une commande côté client et ne fait pas partie du SQL standard. Son effet dépend de votre outil client SQL.

Choisissez la méthode qui correspond le mieux à vos besoins. Les transactions garantissent l'intégrité des données, tandis que les mises à jour par lots peuvent offrir des avantages en termes de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal