Exploiter les instructions SELECT pour les mises à jour des tables SQL Server
SQL Server propose des approches flexibles pour modifier les données des tables. Bien que INSERT INTO ... SELECT
soit standard pour l'ajout de lignes, vous pouvez également mettre à jour les lignes existantes en utilisant UPDATE
en conjonction avec une instruction SELECT
. Cela fournit un moyen puissant de modifier plusieurs enregistrements en fonction des données d'une autre table.
Voici comment effectuer des mises à jour en utilisant cette technique :
Mise à jour de base avec SELECT :
L'approche fondamentale consiste à utiliser l'instruction UPDATE
pour spécifier la table et les colonnes cibles, puis à utiliser une instruction SELECT
pour fournir les nouvelles valeurs. Une clause WHERE
est cruciale pour garantir que seules les lignes prévues sont modifiées :
<code class="language-sql">UPDATE Table SET col1 = a.col1, col2 = a.col2 FROM (SELECT col1, col2, id FROM other_table WHERE sql = 'cool') AS a WHERE Table.id = a.id;</code>
Cet exemple met à jour col1
et col2
dans la table Table
avec les valeurs de other_table
, mais uniquement pour les lignes où id
correspond et où la condition sql = 'cool'
est remplie dans other_table
. Notez l'utilisation d'une sous-requête alias « a » pour plus de clarté et d'efficacité.
Mises à jour avancées avec JOIN :
Pour les scénarios plus complexes impliquant la correspondance de lignes dans des tables, une clause JOIN
offre une solution plus propre et plus efficace :
<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 UPDATE
instruction utilise un INNER JOIN
pour lier Some_Table
et Other_Table
en fonction des valeurs id
correspondantes. Il met ensuite à jour col1
et col2
dans Table_A
avec les valeurs correspondantes de Table_B
uniquement où Table_A.col3 = 'cool'
. Cette méthode est généralement préférée pour sa lisibilité et ses performances, en particulier avec des ensembles de données plus volumineux. N'oubliez pas de choisir le type JOIN
approprié (INTÉRIEUR, GAUCHE, DROITE, COMPLET) en fonction de vos exigences de mise à jour spécifiques.
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!