SET NOCOUNT (Transact-SQL)

Transact-SQL ステートメントまたはストアド プロシージャで処理された行数を示すメッセージが結果セットの一部として返されないようにします。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SET NOCOUNT { ON | OFF } 

説明

SET NOCOUNT が ON の場合、行数は返されません。SET NOCOUNT が OFF の場合、行数が返されます。

SET NOCOUNT が ON の場合でも、@@ROWCOUNT 関数は更新されます。

SET NOCOUNT ON を指定すると、ストアド プロシージャ内の各ステートメントに対する DONE_IN_PROC メッセージは、クライアントに送信されなくなります。このため、実際に返すデータが少量のステートメントで構成されるストアド プロシージャ、または Transact-SQL ループを含むプロシージャの場合、ネットワーク通信量が大きく減少するので、SET NOCOUNT を ON に設定するとパフォーマンスが大きく向上します。

SET NOCOUNT で指定される設定は、解析時ではなく実行時に有効になります。

権限

public ロールのメンバーシップが必要です。

次の例では、処理された行数に関するメッセージを表示しないようにします。

USE AdventureWorks2008R2;
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