sp_executesql動態執行sql語句並將結果賦值給一變量


需求場景:

需動態拼接sql語句進行執行,並將執行的結果賦值給一指定變量。

樣例代碼如下:

SELECT  @tableName = TAB_NAME  FROM  dbo.NMR_BLYWBDY WHERE  BLID =@bldm AND TAB_TYPE='0'

SELECT @sql= 'SELECT DISTINCT top 1 @a= KBLMINXH FROM '+@tableName+' WHERE PAGENO=(SELECT MAX(PAGENO) FROM '+@tableName+')'

EXEC sp_executesql @sql,N'@a varchar(9) output',@kblminxh OUTPUT

 注意:聲明kblminxh等輸出參數時應當為ntext,nvarchar,nchar類型,否則會報這個錯過程需要參數'@statement' 'ntext/nchar/nvarchar' 類型。

 說明:@sql里的@a是作為輸出參數的,@a又把值賦值給@kblminxh,感覺像是動態傳遞變量值。sp_executesql是比較快。

注sp_executesql是2005引入的系統函數,自行查詢其好處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM