當嘗試使用包含變數的OPENROWSET 查詢時,許多人會遇到一個常見錯誤,涉及「' '附近的語法不正確」。要解決此問題,必須了解 OPENROWSET 查詢中與變數相關的限制。
與其他資料庫函數相比,OPENROWSET 不允許在其參數中直接包含表達式或變數。這表示您無法使用變數動態建構 OPENROWSET 語句。
要規避此限制,適當的策略是建立動態 SQL 字串來動態建構 OPENROWSET 語句。然後可以使用 EXEC 語句執行該字串。範例如下:
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」是根據提供的參數「@ID」建構的。隨後,EXEC 語句執行此動態 SQL 字串,從而使用指定的參數值有效執行所需的 OPENROWSET 查詢。
以上是如何處理 OPENROWSET 查詢中的動態參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!