如何將sp_Executesql結果轉化為變量?我需要執行一段動態SQL,然后需要將結果存儲到一個變量中。我知道我可以用sp_executesql但卻找不到關于如何做到這一點的明確例子。
3 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
如果您有輸出參數,您可以這樣做。
DECLARE @retval int
DECLARE @sSQL nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @tablename nvarchar(50)
SELECT @tablename = N'products'
SELECT @sSQL = N'SELECT @retvalOUT = MAX(ID) FROM ' + @tablename;
SET @ParmDefinition = N'@retvalOUT int OUTPUT';
EXEC sp_executesql @sSQL, @ParmDefinition, @retvalOUT=@retval OUTPUT;
SELECT @retval;
但如果您不修改,并且不能修改SP:
-- Assuming that your SP return 1 value
create table #temptable (ID int null)
insert into #temptable exec mysp 'Value1', 'Value2'
select * from #temptable
不漂亮,但很管用。

浮云間
TA貢獻1829條經驗 獲得超4個贊
DECLARE @tab AS TABLE (col VARCHAR(10), colu2 varchar(10)) INSERT into @tab EXECUTE sp_executesql N'SELECT 1 as col1, 2 as col2 union all SELECT 1 as col1, 2 as col2 union all SELECT 1 as col1, 2 as col2' SELECT * FROM @tab

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
DECLARE @vi INTDECLARE @vQuery NVARCHAR(1000)SET @vQuery = N'SELECT @vi= COUNT(*) FROM <TableName>'EXEC SP_EXECUTESQL @Query = @vQuery , @Params = N'@vi INT OUTPUT' , @vi = @vi OUTPUTSELECT @vi
添加回答
舉報
0/150
提交
取消