Apabila cuba menggunakan pertanyaan OPENROWSET yang menggabungkan pembolehubah, ramai individu menghadapi ralat biasa yang melibatkan "sintaks yang salah berhampiran ' '." Untuk menyelesaikan isu ini, adalah penting untuk memahami had yang dikaitkan dengan pembolehubah dalam pertanyaan OPENROWSET.
Berbeza dengan fungsi pangkalan data lain, OPENROWSET tidak membenarkan kemasukan langsung ungkapan atau pembolehubah dalam argumennya. Ini bermakna anda tidak boleh membina pernyataan OPENROWSET secara dinamik menggunakan pembolehubah.
Untuk memintas pengehadan ini, strategi yang sesuai ialah mencipta rentetan SQL dinamik yang membina pernyataan OPENROWSET secara dinamik. Rentetan ini kemudiannya boleh dilaksanakan menggunakan pernyataan EXEC. Berikut ialah ilustrasi:
Declare @ID int Declare @sql nvarchar(max) Set @ID=1 Set @sql='SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')' -- Print @sql Exec(@sql)
Dalam contoh ini, rentetan SQL dinamik "@sql" dibina berdasarkan parameter "@ID" yang disediakan. Selepas itu, pernyataan EXEC melaksanakan rentetan SQL dinamik ini, dengan berkesan melaksanakan pertanyaan OPENROWSET yang dikehendaki dengan nilai parameter yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Parameter Dinamik dalam Pertanyaan OPENROWSET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!