Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour efficacement les enregistrements avec l'instruction CASE de SQL Server 2005 ?

Comment puis-je mettre à jour efficacement les enregistrements avec l'instruction CASE de SQL Server 2005 ?

DDD
Libérer: 2025-01-04 12:22:36
original
870 Les gens l'ont consulté

How Can I Efficiently Update Records with SQL Server 2005's CASE Statement?

Comment mettre à jour efficacement les enregistrements à l'aide de CASE dans SQL Server 2005

Dans SQL Server 2005, l'instruction CASE offre un moyen polyvalent d'effectuer des mises à jour. Cependant, lorsqu'il s'agit de tables contenant un grand nombre d'enregistrements, il est crucial de l'utiliser judicieusement pour éviter les goulots d'étranglement en termes de performances.

Considérez la requête suivante :

UPDATE dbo.TestStudents
SET LASTNAME =
( CASE
    WHEN (LASTNAME = 'AAA') THEN 'BBB'
    WHEN (LASTNAME = 'CCC') THEN 'DDD'
    WHEN (LASTNAME = 'EEE') THEN 'FFF'
    ELSE (LASTNAME)
END )
Copier après la connexion

Cette requête met à jour avec succès le spécifié enregistrements en fonction des conditions données. Cependant, il utilise une condition ELSE qui analyse chaque ligne du tableau, même celles qui n'ont pas besoin d'être mises à jour. Cela peut avoir un impact significatif sur les performances dans les grandes tables.

Pour optimiser la requête, vous pouvez ajouter une clause WHERE pour filtrer les lignes qui doivent être mises à jour :

UPDATE dbo.TestStudents
SET     LASTNAME =  CASE
                        WHEN LASTNAME = 'AAA' THEN 'BBB'
                        WHEN LASTNAME = 'CCC' THEN 'DDD'
                        WHEN LASTNAME = 'EEE' THEN 'FFF'
                        ELSE LASTNAME
                    END
WHERE   LASTNAME IN ('AAA', 'CCC', 'EEE')
Copier après la connexion

En spécifiant les valeurs spécifiques qui doivent être mis à jour dans la clause WHERE, la requête analyse uniquement les lignes qui correspondent à ces critères. Cela améliore considérablement les performances et garantit que les lignes non affectées restent inchangées.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal