Mengambil Keputusan daripada Dynamic SQL dalam Prosedur Tersimpan Pelayan SQL
Bekerja dengan SQL dinamik dalam prosedur tersimpan selalunya memerlukan penangkapan hasil pertanyaan. Ini boleh menjadi rumit, tetapi berikut ialah penyelesaian untuk mendapatkan kembali hasil pertanyaan dinamik dengan cekap ke dalam pembolehubah prosedur tersimpan.
Katakan anda perlu melaksanakan pertanyaan seperti ini secara dinamik:
<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000) DECLARE @city VARCHAR(75) SET @city = 'London' SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city VARCHAR(75)', @city = @city</code>
Pelaksanaan langsung tidak akan menyimpan hasil dalam pembolehubah. Untuk menangkap output, ubah suai kod seperti berikut:
<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000) DECLARE @count INT DECLARE @city VARCHAR(75) SET @city = 'New York' SET @sqlCommand = 'SELECT @cnt = COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city VARCHAR(75), @cnt INT OUTPUT', @city = @city, @cnt = @count OUTPUT SELECT @count</code>
Pendekatan yang dipertingkatkan ini menggunakan elemen utama ini:
@cnt
Pembolehubah: SQL dinamik memberikan hasil COUNT(*)
kepada pembolehubah setempat, @cnt
.OUTPUT
Kata kunci: Kata kunci OUTPUT
menetapkan @cnt
sebagai parameter output.sp_executesql
Parameter: sp_executesql
kini menerima kedua-dua @city
parameter input dan @cnt
parameter output.SELECT @count
memaparkan hasil yang ditangkap. Pembolehubah ini kini memegang kiraan yang dikembalikan oleh pertanyaan dinamik.Kaedah ini menyediakan cara yang mantap untuk mengendalikan hasil daripada SQL dinamik dalam prosedur tersimpan anda, memastikan pengambilan data yang tepat dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Keputusan Pertanyaan SQL Dinamik ke dalam Pembolehubah Prosedur Tersimpan dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!