SQL Server 2005: Mengemas kini Berbilang Jadual dengan Cekap
SQL Server 2005 tidak menyokong pengemaskinian berbilang jadual secara langsung dalam satu pernyataan. Walau bagaimanapun, dua strategi berkesan mencapai matlamat ini: transaksi dan kemas kini kelompok.
Kaedah 1: Kemas Kini Transaksi
Transaksi memastikan atomicity; semua kemas kini berjaya atau tiada yang berjaya. Kemas kini yang gagal mengembalikan semua perubahan. Gunakan BEGIN TRANSACTION
dan COMMIT
untuk mengurus ini:
<code class="language-sql">BEGIN TRANSACTION; UPDATE Table1 SET Table1.LastName = 'DR. XXXXXX' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; UPDATE Table2 SET Table2.WAprrs = 'start,stop' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; COMMIT;</code>
(Nota: Contoh asal menggunakan cantuman tersirat. Contoh yang disemak ini menggunakan eksplisit INNER JOIN
untuk kejelasan dan kebolehbacaan yang lebih baik.)
Kaedah 2: Kemas Kini Kelompok
Kemas kini kelompok melaksanakan berbilang kenyataan dalam satu panggilan pangkalan data, yang berpotensi meningkatkan prestasi. Gunakan pernyataan GO
sebagai pembatas:
<code class="language-sql">BEGIN TRANSACTION; UPDATE Table1 SET Table1.LastName = 'DR. XXXXXX' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; GO UPDATE Table2 SET Table2.WAprrs = 'start,stop' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; COMMIT;</code>
Arahan GO
memisahkan kemas kini kepada satu kelompok untuk pelaksanaan. Ingat bahawa GO
ialah arahan pihak klien, bukan sebahagian daripada SQL standard. Kesannya bergantung pada alat klien SQL anda.
Pilih kaedah yang paling sesuai dengan keperluan anda. Transaksi menjamin integriti data, manakala kemas kini kelompok boleh menawarkan kelebihan prestasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Jadual dalam Penyata SQL Server 2005 Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!