Menggunakan parameter dalam OPENQUERY
OPENQUERY ialah alat yang berkuasa untuk mengakses data pelayan terpaut, tetapi memasukkan parameter ke dalam pertanyaan boleh menjadi mencabar. Dokumentasi dengan jelas menyatakan bahawa OPENQUERY tidak menerima pembolehubah untuk parameternya.
Penyelesaian:
Untuk mengatasi had ini, beberapa penyelesaian tersedia:
<code class="language-sql">DECLARE @TSQL varchar(8000), @VAR char(2) SELECT @VAR = 'CA' SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')' EXEC (@TSQL)</code>
<code class="language-sql">DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000) SET @LinkedServer = 'MyLinkedServer' SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ',''' SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')' EXEC (@OPENQUERY+@TSQL)</code>
<code class="language-sql">DECLARE @VAR char(2) SELECT @VAR = 'CA' EXEC MyLinkedServer.master.dbo.sp_executesql N'SELECT * FROM pubs.dbo.authors WHERE state = @state', N'@state char(2)', @VAR</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Parameter dengan OPENQUERY dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!