首頁 >資料庫 >mysql教程 >如何在 SQL Server 中使用 OPENQUERY 參數?

如何在 SQL Server 中使用 OPENQUERY 參數?

Susan Sarandon
Susan Sarandon原創
2025-01-14 12:41:44957瀏覽

How Can I Use Parameters with OPENQUERY in SQL Server?

在OPENQUERY使用參數

OPENQUERY是存取連結伺服器資料的強大工具,但將參數合併到查詢中可能具有挑戰性。文件明確指出OPENQUERY不接受其參數的變數。

解決方法:

為了克服此限制,可以使用幾種解決方法:

  • 傳遞基本值:對於需要傳入特定值的簡單情況,請使用類似以下的程式碼:
<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>
  • 使用Sp_executesql預存程序:為了簡化程式碼並避免多層引號,請使用下列方法:
<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>

以上是如何在 SQL Server 中使用 OPENQUERY 參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn