有时候动态sql需要进行变量的赋值,这个时候就需要调用系统的存储过程sp_executesql了。使用中还是有些注意事项,代码如下:
--字符型字段需声明为nvarchar类型 declare @strsql nvarchar(1000),@value_str nvarchar(254) --动态sql拼接 set @strsql='select @value_str=isnull(value_str,'''') from [mast'+'admin'+'@prop_fld] where form_name=''invhaform'' and prop_name=''peroutqty''' --测试sql拼接结果 print @strsql --n'@value_str nvarchar(254) output'为动态sql中变量的声明,@value_str output为接收变量,注意都需带上output参数。 exec sp_executesql @strsql,n'@value_str nvarchar(254) output',@value_str output --测试变量结果 print @value_str
执行结果如下: