有时候动态sql须要进行变量的赋值,这个时候就须要调用系统的存储过程sp_executesql了。使用中仍是有些注意事项,代码以下:sql
--字符型字段需声明为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
执行结果以下:测试