前言
個人接觸到動態組合與執行 SQL 方法,主要的情境在執行 SP 階段,需要動態取得的不同資料庫名稱 (同主機),執行跨資料庫存取資料的時候需要動態語法。實際上若並非必要,個人不太喜歡動態組合語法,主因是非常的難以測試,尤其是執行非常長的語法,讓除錯的困難度增加不少。
若需要帶入參數,語法為
EXEC SP_EXECUTESQL 執行語法, 帶入參數型態, 帶入參數;
sp_executesql 會比 EXECUTE 更具有多變性;同時由於 sp_executesql 所產生的執行計畫更能讓 SQL Server 重複使用,因此 sp_executesql 也會比 EXECUTE 更有效率 (參考資料 1)
故建議使用 sp_executesql 代替直接使用 EXECUTE
參考資料
1. 使用 sp_executesql - https://technet.microsoft.com/zh-tw/library/ms175170(v=sql.105).aspx
0 留言