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()函數,因為該存儲過程支持嵌入參數.。