如何用动态SQL语句给变量赋值
展开全部
在一个问题中遇到的一段精典动态SQL代码:declare @fdate datetime
declare @sql0 nvarchar(4000)
declare @banzhi varchar(4),@num varchar(4),@cur_id intset @cur_id=2497
set @sql0=' SELECT @banzhi=b'+
case when substring(convert(char(10),@fdate,120),9,1)=0 then substring(convert(char(10),@fdate,120),10,1)
else substring(convert(char(10),@fdate,120),9,2)
end+' FROM kq_paiban'+
' where empid='''+rtrim(convert(char,@cur_id))+''' and
sessionid=(select id from s_session where convert(varchar(7),date0,120)='''+substring(convert(char(10),@fdate,120),1,7)+''')'
select (@sql0)--显示动态构造的SQL语句
--在构造动态SQL语句字符串时,对其中动态部分(比如这里的列名B1,B2[Bi]后面变化的部分i)要先运算出来,还有其中的常量部分,最后将字符串连接成完整语句.exec sp_executesql @sql0,N'@banzhi varchar(4) output',@num output
--这里没有使用EXEC()函数,因为该存储过程支持嵌入参数.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询