Heim >Datenbank >MySQL-Tutorial >Wie kann ich Datensätze mit der CASE-Anweisung von SQL Server 2005 effizient aktualisieren?

Wie kann ich Datensätze mit der CASE-Anweisung von SQL Server 2005 effizient aktualisieren?

DDD
DDDOriginal
2025-01-04 12:22:36882Durchsuche

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

So aktualisieren Sie Datensätze effizient mit CASE in SQL Server 2005

In SQL Server 2005 bietet die CASE-Anweisung eine vielseitige Möglichkeit, bedingte Anweisungen auszuführen Aktualisierungen. Beim Umgang mit Tabellen mit einer großen Anzahl von Datensätzen ist es jedoch wichtig, diese mit Bedacht einzusetzen, um Leistungsengpässe zu vermeiden.

Betrachten Sie die folgende Abfrage:

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

Diese Abfrage aktualisiert erfolgreich die angegebenen Aufzeichnungen basierend auf den gegebenen Bedingungen. Es verwendet jedoch eine ELSE-Bedingung, die jede Zeile in der Tabelle durchsucht, auch diejenigen, die nicht aktualisiert werden müssen. Dies kann die Leistung in großen Tabellen erheblich beeinträchtigen.

Um die Abfrage zu optimieren, können Sie eine WHERE-Klausel hinzufügen, um die Zeilen zu filtern, die aktualisiert werden sollen:

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

Durch Angabe der spezifischen Werte, die aktualisiert werden sollen in der WHERE-Klausel aktualisiert werden müssen, durchsucht die Abfrage nur die Zeilen, die diesen Kriterien entsprechen. Dies verbessert die Leistung erheblich und stellt sicher, dass nicht betroffene Zeilen unverändert bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich Datensätze mit der CASE-Anweisung von SQL Server 2005 effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn