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