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

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

我需要执行一段动态SQL,然后需要将结果存储到一个变量中。

我知道我可以用sp_executesql但却找不到关于如何做到这一点的明确例子。


临摹微笑
浏览 277回答 3
3回答

米琪卡哇伊

如果您有输出参数,您可以这样做。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 valuecreate table #temptable (ID int null)insert into #temptable exec mysp 'Value1', 'Value2'select * from #temptable不漂亮,但很管用。

浮云间

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

DECLARE&nbsp;@vi&nbsp;INTDECLARE&nbsp;@vQuery&nbsp;NVARCHAR(1000)SET&nbsp;@vQuery&nbsp;=&nbsp;N'SELECT&nbsp;@vi=&nbsp;COUNT(*)&nbsp;FROM&nbsp;<TableName>'EXEC&nbsp;SP_EXECUTESQL&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Query&nbsp;&nbsp;=&nbsp;@vQuery&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;@Params&nbsp;=&nbsp;N'@vi&nbsp;INT&nbsp;OUTPUT' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;@vi&nbsp;=&nbsp;@vi&nbsp;OUTPUTSELECT&nbsp;@vi
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL