SET NOCOUNT { ON | OFF }
-- 預設為 OFF
nn rows affected)。@@ROWCOUNT 函數仍正常更新。DONE_IN_PROC 封包,大幅減少網路流量。當預存程序包含大量不回傳資料集的陳述式(INSERT、UPDATE、DELETE 等)時,開啟 SET NOCOUNT ON 可顯著降低網路負載,提升執行速度。
SET NOCOUNT 在執行期(Run-time)生效,而非剖析期(Parse-time)。
CREATE PROCEDURE usp_Example
AS
BEGIN
SET NOCOUNT ON; -- 開頭開啟
-- 業務邏輯...
SET NOCOUNT OFF; -- 結束前還原(可選,視習慣)
END
雖非強制,但建議養成習慣:在預存程序開頭加入 SET NOCOUNT ON,結束前還原預設值,避免干擾呼叫端的行數判斷邏輯。