【SQL】 exec sp_executesql 动态给变量赋值

这个用法在存储过程编写当中经常要用到,收藏一下。

如果没有这个解决方法,我们在写存储过程的时候 经常会应为有些数据要动态的从经过各种组合的sql语句中得到 某个变量值而头痛

下面给出实例  

declare   @s   nvarchar(4000),@i   int               --定义输出参数  
set   @s='select   @i=count(*)   from   test_exec'      
exec   sp_executesql   @s,N'@i   int   output',@i   output     --定义sql语句里参数  

通过 exec   sp_executesql   @s,N'@i   int   output',@i   output

就可以将 string 的sql里的值赋值给 @i

 

关于exec和exec sp_executesql的区分可参考:https://www.cnblogs.com/xbf321/archive/2008/11/02/1325067.html

其中最重要的一个区别在于  sp_executesql提供了输入和输出参数

转自:https://www.cnblogs.com/sunny_kitty/archive/2009/07/08/1519371.html

posted @ 2021-06-01 12:29  狼窝窝  阅读(627)  评论(0)    收藏  举报