如何将sp_Executesql结果转化为变量?我需要执行一段动态SQL,然后需要将结果存储到一个变量中。我知道我可以用sp_executesql但却找不到关于如何做到这一点的明确例子。
3 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
如果您有输出参数,您可以这样做。
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
不漂亮,但很管用。
慕侠2389804
TA贡献1719条经验 获得超6个赞
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
添加回答
举报
0/150
提交
取消