Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengemas Kini Rekod dengan Cekap dengan Penyata KES SQL Server 2005?

Bagaimanakah Saya Boleh Mengemas Kini Rekod dengan Cekap dengan Penyata KES SQL Server 2005?

DDD
DDDasal
2025-01-04 12:22:36892semak imbas

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

Cara Mengemas kini Rekod dengan Cekap Menggunakan CASE dalam SQL Server 2005

Dalam SQL Server 2005, pernyataan CASE menawarkan cara yang serba boleh untuk melaksanakan bersyarat kemas kini. Walau bagaimanapun, apabila berurusan dengan jadual dengan bilangan rekod yang banyak, adalah penting untuk menggunakannya dengan bijak untuk mengelakkan kesesakan prestasi.

Pertimbangkan pertanyaan berikut:

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

Pertanyaan ini berjaya mengemas kini yang ditentukan rekod berdasarkan syarat yang diberikan. Walau bagaimanapun, ia menggunakan syarat ELSE yang mengimbas setiap baris dalam jadual, walaupun yang tidak perlu dikemas kini. Ini boleh memberi kesan ketara kepada prestasi dalam jadual besar.

Untuk mengoptimumkan pertanyaan, anda boleh menambah klausa WHERE untuk menapis baris yang perlu dikemas kini:

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

Dengan menyatakan nilai khusus yang perlu dikemas kini dalam klausa WHERE, pertanyaan hanya mengimbas baris yang sepadan dengan kriteria tersebut. Ini meningkatkan prestasi dengan ketara dan memastikan baris yang tidak terjejas kekal tidak berubah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas Kini Rekod dengan Cekap dengan Penyata KES SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn