SET NOCOUNT (Transact-SQL)
適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric 中的Azure Synapse Analytics 倉儲
控制是否在結果集之後傳回顯示 Transact-SQL 語句或預存程式所影響之數據列數目的訊息。 此訊息是額外的結果集。
Syntax
SET NOCOUNT { ON | OFF }
注意
若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔。
備註
當 SET NOCOUNT 為 ON 時,不會傳回計數。 當 SET NOCOUNT 是 OFF 時,會傳回計數。
即使 SET NOCOUNT 是 ON,也會更新 @@ROWCOUNT 函數。
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 個受影響的資料列)」只會從第一個 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
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應