我想通過 SQL Server 中的鏈接服務器執行一個函式。
當我執行OPENQUERY時,它運行成功,但是當我使用時execute @SQL,它會拋出一個錯誤。
此代碼運行成功:
SELECT A
FROM OPENQUERY([SERVER20], 'SELECT COUNT(9) AS A
FROM MyData.dbo.MyFunctionName(''401700000809723'', null)')
但是,此代碼會導致錯誤:
DECLARE @Sql2 nvarchar(1000) = 'SELECT A FROM OPENQUERY([SERVER20] , ''SELECT COUNT(9) AS A FROM MyData.dbo.MyFunctionName(''''401700000809723'''', null)'')'
EXEC @Sql2
此代碼也會導致錯誤:
DECLARE @PolicyKey varchar(50) = '401700000809723'
DECLARE @Sql3 nvarchar(1000) = 'SELECT A FROM OPENQUERY([SERVER20] , ''SELECT COUNT(9)
AS A FROM MyData.dbo.MyFunctionName(''''' @PolicyKey ''''', null)'')'
EXEC @Sql3
情況 2 和 3 的錯誤是:
訊息 203,級別 16,狀態 2,第 38 行
名稱 'SELECT A FROM OPENQUERY([SERVER20] , 'SELECT COUNT(9) AS A FROM MyData.dbo.MyFunctionName(''401700000809723'', null)')' 是不是有效的識別符號。
uj5u.com熱心網友回復:
我認為存盤在變數中的變數查詢很好,但是執行有問題:
EXEC (@Sql2);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531945.html
