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

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

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

慕的地10843 2019-10-12 11:07:19
如何将sp_Executesql结果转化为变量?我需要执行一段动态SQL,然后需要将结果存储到一个变量中。我知道我可以用sp_executesql但却找不到关于如何做到这一点的明确例子。
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞


如果您有输出参数,您可以这样做。


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-10-13
?
杨魅力

TA贡献1811条经验 获得超5个赞

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-10-13
  • 3 回答
  • 0 关注
  • 446 浏览
慕课专栏
更多

添加回答

举报

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