Apabila cuba memadam 1000 baris teratas daripada jadual, pembangun sering menghadapi perkara yang tidak dijangka tingkah laku. Kod mereka, seperti kod yang disediakan dalam pernyataan masalah, akhirnya memadamkan keseluruhan jadual dan bukannya sasaran yang dimaksudkan.
Isunya terletak pada fakta bahawa kod sampel menggabungkan pernyataan DELETE dengan pernyataan SELECT. Pernyataan DELETE melaksanakan 1000 baris teratas, dengan berkesan memadamkan semua dalam jadual. Untuk membetulkan ini, kita perlu menentukan kriteria susunan khusus untuk fungsi TOP.
Pendekatan yang lebih cekap untuk memadamkan 1000 baris teratas adalah dengan menggunakan Ungkapan Jadual Biasa (CTE) atau ungkapan jadual yang serupa. Ini membolehkan kami menentukan kriteria pesanan dalam CTE, seperti yang dilihat dalam kod jawapan yang disediakan:
;WITH CTE AS ( SELECT TOP 1000 * FROM [mytab] ORDER BY a1 ) DELETE FROM CTE
Dengan menggunakan teknik ini, kami memastikan bahawa hanya 1000 baris teratas, disusun mengikut lajur 'a1' dalam kes ini, disasarkan untuk dipadamkan. Pendekatan ini menjamin hasil yang diingini tanpa risiko memadamkan keseluruhan jadual secara tidak sengaja.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Baris N Teratas dengan Selamat daripada Jadual Pelayan SQL Tanpa Memadam Semuanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!