搜索
您的当前位置:首页SQLserver动态SQL对变量讲行赋值

SQLserver动态SQL对变量讲行赋值

来源:飒榕旅游知识分享网
SQLserver动态SQL对变量讲⾏赋值

执⾏如下SQLdeclare @t int exec('set @t=1') print(@t)

报如下错误!

服务器: 消息 137,级别 15,状态 2,⾏ 1 必须声明变量 。

实际就是变量与动态语句不能共享, 那么换成这样就⾏, declare @t int set @t=1 print(@t)或

exec('declare @t int; set @t=1; print(@t)')

但是有时候你⼀定要,变量与动态SQL结合起来。

⽐如,你在存储过程中定义⼀个输出参数,◎COUNT int output

⽽你在获得这个值的最好的⽅法就是动态SQL,那么有什么好的⽅式吗? 那就要⽤到系统存储过程,sp_executesql

declare @sql2 nvarchar(500)

set @sql2 = 'select @COUNT = count(distinct('+@groupby+')) from TG_ENTRY where '+@sqlWhere execute sp_executesql @sql2,

N'@COUNT int output', @TOTAL_COUNT output

因篇幅问题不能全部显示,请点此查看更多更全内容

Top