首頁 > 資料庫 > mysql教程 > 如何處理 OPENROWSET 查詢中的變數替換?

如何處理 OPENROWSET 查詢中的變數替換?

Patricia Arquette
發布: 2025-01-05 18:15:39
原創
667 人瀏覽過

How to Handle Variable Substitution in OPENROWSET Queries?

OPENROWSET 查詢中的變數取代

此查詢在嘗試將變數(@ID) 動態嵌入OPENROWSET 語句中時遇到錯誤:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )
登入後複製

錯誤訊息表明 '附近的語法不正確',突出顯示嘗試將字串與變數連接。

為什麼會發生錯誤

OPENROWSET 不允許直接變數取代。傳遞給提供者的字串參數將逐字求值,從而防止求值和包含變數。

解決方案:動態SQL

要在OPENROWSET 查詢中嵌入變量,您必須使用動態SQL 技術:

  1. 聲明變量並使用值。
  2. 透過連接 OPENROWSET 語句與變數值來建構動態 SQL 字串。
  3. 準備並執行動態 SQL。

以下範例:

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)
登入後複製

透過使用動態 SQL,您可以在執行時間建構提供者字串並動態包含變數價值。

以上是如何處理 OPENROWSET 查詢中的變數替換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板