为了账号安全,请及时绑定邮箱和手机立即绑定

如何将sp_Executesql结果转化为变量?

如何将sp_Executesql结果转化为变量?

一只萌萌小番薯 2019-07-17 15:20:34
如何将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

不漂亮,但很管用。


查看完整回答
反对 回复 2019-07-17
?
慕侠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


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 550 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信