Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan Pembolehubah dalam Pertanyaan OPENROWSET?
Menggunakan Pembolehubah dalam Pertanyaan OPENROWSET
Percubaan untuk menggunakan ungkapan dalam pertanyaan OPENROWSET selalunya mengakibatkan ralat seperti "Sintaks salah berhampiran ' '" Ini kerana OPENROWSET tidak menyokong penggunaan ungkapan untuk menentukan parameter.
Untuk menyelesaikan isu ini, gunakan SQL dinamik untuk mencipta rentetan pertanyaan OPENROWSET dengan nilai parameter dibenamkan. Sebagai contoh, kod berikut menunjukkan cara menggunakan SQL dinamik untuk menghantar parameter integer bernama @ID kepada prosedur tersimpan sProc1 dalam pertanyaan OPENROWSET:
DECLARE @ID int DECLARE @sql nvarchar(max) SET @ID = 1 SET @sql = 'SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.sProc1 @ID = ' + CAST(@ID AS VARCHAR(10)) + ''')' -- Print @sql PRINT @sql -- Execute dynamic SQL EXEC(@sql)
Dalam contoh ini, nilai pembolehubah @ID dimasukkan secara dinamik ke dalam rentetan pertanyaan OPENROWSET menggunakan fungsi CAST untuk menukar nilai integer kepada VARCHAR(10). Pernyataan SQL dinamik yang terhasil kemudian dicetak ke konsol dan dilaksanakan.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Pembolehubah dalam Pertanyaan OPENROWSET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!