Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan Pembolehubah dalam Pertanyaan OPENROWSET?

Bagaimana untuk Menggunakan Pembolehubah dalam Pertanyaan OPENROWSET?

Barbara Streisand
Barbara Streisandasal
2025-01-05 13:22:43636semak imbas

How to Use Variables in OPENROWSET Queries?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn