適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
中的倉庫Microsoft Fabric 中的 SQL 資料庫
控制是否在結果集之後傳回顯示 Transact-SQL 語句或預存程式所影響之數據列數目的訊息。 此訊息是額外的結果集。
語法
SET NOCOUNT { ON | OFF }
備註
當 為 SET NOCOUNT時ON,不會傳回計數。 當 為 SET NOCOUNT時OFF,會傳回計數。
即使 是 @@ROWCOUNT,SET NOCOUNT函式ON也會更新。
SET NOCOUNT ON 會防止針對預存程式中每個語句將訊息傳送 DONEINPROC 至用戶端。 對於包含數個語句的預存程式,這些語句不會傳回太多實際數據,或針對包含 Transact-SQL 迴圈的程式,設定 SET NOCOUNT 為 ON 可提供顯著的效能提升,因為網路流量會大幅降低。
指定的 SET NOCOUNT 設定會在執行或運行時間生效,而不是在剖析時生效。
若要檢視此設定的目前設定,請執行下列查詢。
DECLARE @NOCOUNT VARCHAR(3) = 'OFF';
IF ((512 & @@OPTIONS) = 512)
SET @NOCOUNT = 'ON';
SELECT @NOCOUNT AS NOCOUNT;
權限
需要 public 角色的成員資格。
範例
下列範例會防止顯示受影響之資料列數的相關訊息。 在下列範例中, (5 rows affected) 只會從第一個 SELECT 語句傳回給用戶端。
USE AdventureWorks2022;
GO
SET NOCOUNT OFF;
GO
-- Display the count message.
SELECT TOP (5) LastName
FROM Person.Person
WHERE LastName LIKE 'A%';
GO
-- SET NOCOUNT to ON to no longer display the count message.
SET NOCOUNT ON;
GO
SELECT TOP (5) LastName
FROM Person.Person
WHERE LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to OFF
SET NOCOUNT OFF;
GO