Pemadaman Baris Teratas yang Cekap dalam Pelayan Sql 2008
Bayangkan situasi di mana anda perlu mengalih keluar bilangan baris tertentu dari bahagian atas jadual dalam SQL Server. Walaupun pendekatan intuitif mungkin menggunakan pernyataan DELETE yang dipasangkan dengan klausa TOP, anda mungkin menghadapi isu di mana semua baris dipadamkan secara tidak sengaja. Untuk menyelesaikan cabaran ini, pertimbangkan panduan berikut:
Kod yang anda cuba laksanakan, seperti yang anda temui, mengakibatkan pemadaman semua baris daripada jadual anda. Ini kerana kod tersebut mengandungi dua pernyataan yang berbeza: pernyataan DELETE dan pernyataan SELECT dengan klausa TOP. Klausa TOP, tanpa menyatakan klausa ORDER BY, tidak dapat mengenal pasti baris yang akan dipadamkan dengan berkesan.
Untuk memastikan pengalihan keluar baris terpilih, anda mesti menetapkan kriteria susunan dalam klausa TOP. Selain itu, mencipta Ungkapan Jadual Biasa (CTE) atau ungkapan jadual yang serupa ialah kaedah yang sangat cekap untuk memadamkan bilangan baris teratas yang ditentukan.
Coretan kod berikut menunjukkan pendekatan yang lebih dipercayai:
;WITH CTE AS ( SELECT TOP 1000 * FROM [mytab] ORDER BY a1 ) DELETE FROM CTE
Dalam kod ini, CTE menetapkan jadual berasingan, yang diperoleh daripada jadual asal anda, dengan memilih bilangan baris yang ditentukan berdasarkan kriteria susunan tertentu (dalam kes ini, lajur a1). Selepas itu, pernyataan DELETE mengalih keluar baris daripada jadual sementara ini, memastikan pemadaman yang disasarkan bagi baris teratas sahaja.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Bilangan Tertentu Baris Teratas dalam SQL Server 2008 dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!