Sql-Server

連結伺服器的替代方案(允許帶參數的內聯 SQL)

  • December 28, 2015

我正在嘗試找到一種解決方案來針對某些連結伺服器數據庫執行帶有參數的內聯 SQL。從我在網上找到的查詢連結伺服器的唯一正確方法是使用 OPENQUERY。防止 SQL 注入的唯一正確方法是使用參數。

但是,OPENQUERY 的結構方式看起來不像參數是可能的。我是否正確假設使用這種類型的配置進行查詢的唯一正確方法是使用儲存過程?有沒有其他選擇?是否有任何類似的數據庫配置可以使用?

任何關於該主題的想法或建議將不勝感激。

不,你不應該使用OPENQUERY恕我直言。這個構造怎麼樣,它允許你使用sp_executesql和參數:

DECLARE @someParam INT = 5;

EXEC LinkedServerName.master.sys.sp_executesql
 @stmt = N'SELECT @i, @@SERVERNAME, @@VERSION;', 
 @params = N'@i INT', @i = @someParam;

引用自:https://dba.stackexchange.com/questions/94990