1
我需要執行sp_executesql
存儲過程並從中返回custom table type
。如何將sp_executesql的OUTPUT參數設置爲自定義表類型?
可能嗎?
我的代碼是:
DECLARE @sSQL AS VARCHAR(MAX);
DECLARE @tResult AS ttParamValues;
SET @sSQL = 'SELECT ..... add some params in the concatanation';
EXEC sp_executesql @sSQL, @[email protected] OUT;
SELECT * FROM @tResult;
我收到錯誤:
Msg 348, Level 16, State 1, Line 96
The table variable "@tResult" can not be passed to a stored procedure with the OUTPUT option.
我讀表必須聲明爲READONLY
但無法弄清楚如何做到這一點。
'EXEC sp_executesql @sSQL ....'本來會返回結果集,您無需傳遞任何輸出參數就可以將結果集返回某種變量。如果您想要進一步從結果集中進行選擇,請在動態SQL語句中執行。 – 2014-10-04 13:20:42
是的,@ M.Ali,但我想在* SQL表值函數*中使用該代碼,並且因爲它必須返回表類型,所以我嘗試通過自定義表值類型執行此操作。我需要這個函數,因爲我想和其他表格一起「加入」並提取數據。我假設不使用'global ##'臨時表,因爲我可能遇到隔離問題。 – 2014-10-04 13:29:24
您不能使用動態sql insdie用戶定義的函數。 – 2014-10-04 13:40:12