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

Comment puis-je mettre à jour efficacement les enregistrements avec une instruction CASE dans SQL Server 2005 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 20:16:10436parcourir

How Can I Efficiently Update Records with a CASE Statement in SQL Server 2005?

Comment utiliser l'instruction CASE dans les mises à jour de SQL Server 2005

L'instruction CASE fournit une méthode concise pour mettre à jour les enregistrements en fonction de conditions spécifiées. Cependant, il est essentiel de prendre en compte l'efficacité lors de l'utilisation des instructions CASE, en particulier lorsqu'il s'agit de tables volumineuses.

Problème :

L'instruction SQL suivante met à jour les enregistrements dans la table TestStudents, changer des noms de famille spécifiques en de nouvelles valeurs à l'aide de l'instruction CASE :

UPDATE dbo.TestStudents  
SET LASTNAME = 
( CASE  
WHEN (LASTNAME = 'AAA') THEN 'BBB' 
WHEN (LASTNAME = 'CCC') THEN 'DDD' 
WHEN (LASTNAME = 'EEE') THEN 'FFF' 
ELSE  (LASTNAME)
END )

Bien que cette instruction obtienne le résultat souhaité, elle parcourt chaque enregistrement de la table, même ceux qui ne sont pas affectés.

Solution :

Pour améliorer les performances et maintenir l'intégrité des données, une clause WHERE peut être ajoutée pour limiter la mise à jour aux seules lignes éligibles au changement :

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')

La clause WHERE spécifie que seuls les enregistrements dont le nom de famille est égal à « AAA », « CCC » ou « EEE » doit être inclus dans la mise à jour. Cela garantit que les lignes non affectées restent inchangées, réduisant ainsi les opérations inutiles sur la table.

En combinant l'instruction CASE avec une clause WHERE correctement définie, vous pouvez mettre à jour efficacement des enregistrements spécifiques dans votre base de données SQL tout en préservant l'intégrité des donné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!

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