1

我有一個任務,只能通過在運行時構建QUERY並使用sp_executesql執行它來完成。結果必須是一個布爾(0/1整數)值,我需要返回作爲該函數的結果。如何在T-SQL中的函數中獲取存儲過程輸出?

我發現捕獲SP輸出的唯一方法是「INSERT INTO [table] EXECUTE [sp]」查詢,但函數禁止這樣做。

任何想法如何克服這一點?

回答

3

sp_executesql允許您傳入參數,也可以聲明參數作爲輸出。請看這個簡單的例子,它不是很動態,但是顯示sp_executesql工作的輸出參數如何工作

declare @sql nvarchar(max) 
declare @user sysname 

select @sql = 'SELECT @user = SYSTEM_USER' 

exec sp_executesql @sql, N'@user sysname OUTPUT', @user OUTPUT 

select @user 
相關問題