So verwenden Sie die CASE-Anweisung in SQL Server 2005-Updates
Die CASE-Anweisung bietet eine prägnante Methode zum Aktualisieren von Datensätzen basierend auf angegebenen Bedingungen. Allerdings ist es wichtig, bei der Verwendung von CASE-Anweisungen auf Effizienz zu achten, insbesondere beim Umgang mit großen Tabellen.
Problem:
Die folgende SQL-Anweisung aktualisiert Datensätze in der TestStudents-Tabelle. Ändern bestimmter Nachnamen in neue Werte mithilfe der CASE-Anweisung:
UPDATE dbo.TestStudents SET LASTNAME = ( CASE WHEN (LASTNAME = 'AAA') THEN 'BBB' WHEN (LASTNAME = 'CCC') THEN 'DDD' WHEN (LASTNAME = 'EEE') THEN 'FFF' ELSE (LASTNAME) END )
Während diese Anweisung das gewünschte Ergebnis erzielt, durchsucht sie jeden Datensatz in die Tabelle, auch diejenigen, die davon unberührt bleiben.
Lösung:
Um die Leistung zu verbessern und die Datenintegrität aufrechtzuerhalten, kann eine WHERE-Klausel hinzugefügt werden, um die Aktualisierung nur auf diese zu beschränken Zeilen, die für die Änderung in Frage kommen:
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')
Die WHERE-Klausel gibt an, dass nur Datensätze erfasst werden, deren Nachname „AAA“, „CCC“ oder „AAA“ entspricht „EEE“ sollte im Update enthalten sein. Dadurch wird sichergestellt, dass nicht betroffene Zeilen unverändert bleiben, wodurch unnötige Vorgänge in der Tabelle reduziert werden.
Durch die Kombination der CASE-Anweisung mit einer ordnungsgemäß definierten WHERE-Klausel können Sie bestimmte Datensätze in Ihrer SQL-Datenbank effizient aktualisieren und gleichzeitig die Datenintegrität wahren.
Das obige ist der detaillierte Inhalt vonWie kann ich Datensätze mit einer CASE-Anweisung in SQL Server 2005 effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!