Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour efficacement les enregistrements avec une instruction CASE dans 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!