首頁 > 資料庫 > mysql教程 > 如何修復帶有變數的 OPENROWSET 查詢中的'' '附近語法不正確”錯誤?

如何修復帶有變數的 OPENROWSET 查詢中的'' '附近語法不正確”錯誤?

Susan Sarandon
發布: 2025-01-03 22:53:41
原創
883 人瀏覽過

How to Fix

使用變數對OPENROWSET 查詢進行故障排除

使用OPENROWSET 函數存取外部資料時,如果在變數表達式中包含變數表達式,則可能會遇到錯誤查詢字串。此類範例之一是錯誤「' '附近的語法不正確。」當您嘗試將變數與OPENROWSET 語句連接時,會發生這種情況,如以下查詢所示:

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

在此查詢中,變數@id 使用' ' 運算子附加到EXEC 語句。但是,OPENROWSET 不支援在其查詢字串中使用表達式。

解決方案:

要解決此問題,您不能直接在 OPENROWSET 查詢中使用變數。相反,您可以建立動態 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 來保存動態 SQL 查詢,並使用 CONVERT() 函數連接變數 @ID。這允許我們使用所需的參數執行動態 SQL 語句。

以上是如何修復帶有變數的 OPENROWSET 查詢中的'' '附近語法不正確”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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