[MSSQL]SET NOCOUNT

  • 80
  • 0
  • 2020-05-16

停止在部分結果集中傳回顯示 Transact-SQL 陳述式或預存程序所影響之資料列數的訊息。

在執行 SQL 指令時,都會回傳此次動作影響的筆數。
例如執行範例SQL update script,會得到此次執行影響的資料筆數訊息
update from  [table] set name = 'Test' where id = 5

若是在執行指令前加上 SET NOCOUNT 的設定,
可以用來控制是否要顯示影響的資料筆數,
SET NOCOUNT ON;
SET NOCOUNT OFF;

將 SET NOCOUNT 設為 ON 可以大幅提升效能,因為網路傳輸量會大幅降低。

這邊要注意的是,
SET NOCOUNT 是 ON 或 OFF 不會影響 @@ROWCOUNT 的值,
@@ROWCOUNT 會儲存上一次執行指令後影響資料的筆數。


參考
SET NOCOUNT (Transact-SQL)