有時候動態sql需要進行變數的賦值,這個時候就需要調用系統的存儲過程sp_executesql了。使用中還是有些註意事項,代碼如下: 執行結果如下: ...
有時候動態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
執行結果如下: