导航

sqlserver exec sp_executesql 动态给变量赋值

Posted on 2009-07-08 18:53  阳光有约  阅读(2176)  评论(0编辑  收藏  举报

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

如果没有这个解决方法,我们在写存储过程的时候 经常会应为有些数据要动态的从经过各种组合的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