有時候動態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
執行結果如下: