Maison >base de données >tutoriel mysql >Puis-je utiliser les instructions SELECT pour mettre à jour les tables dans SQL Server ?

Puis-je utiliser les instructions SELECT pour mettre à jour les tables dans SQL Server ?

DDD
DDDoriginal
2025-01-25 05:01:11912parcourir

Can I Use SELECT Statements to Update Tables in SQL Server?

Maîtriser les mises à jour des tables avec les instructions SELECT dans SQL Server

L'instruction INSERT...SELECT de SQL Server simplifie l'ajout de lignes à l'aide des données d'une autre table. Mais pouvez-vous utiliser une approche similaire pour mettre à jour les tables ? Ce guide explique comment.

Disons que vous disposez d'une table temporaire avec les valeurs mises à jour que vous souhaitez fusionner dans votre table principale. Une approche courante (mais incorrecte) pourrait ressembler à ceci :

<code class="language-sql">UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id</code>

Cette syntaxe est erronée. La bonne méthode exploite les jointures pour des mises à jour efficaces et précises :

<code class="language-sql">UPDATE Table_A
SET
    Table_A.col1 = Table_B.col1,
    Table_A.col2 = Table_B.col2
FROM
    Some_Table AS Table_A
INNER JOIN Other_Table AS Table_B
    ON Table_A.id = Table_B.id
WHERE
    Table_A.col3 = 'cool'</code>

Cette requête affinée utilise un JOIN pour lier les lignes de Some_Table (alias Table_A) et Other_Table (alias Table_B) en fonction des valeurs id correspondantes. La clause WHERE filtre la mise à jour uniquement sur les lignes où Table_A.col3 = 'cool'. Cela garantit l'intégrité et la précision des données lors de la mise à jour de vos tables à l'aide de données récupérées via une instruction SELECT.

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!

Déclaration:
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