SET NOCOUNT (Transact-SQL)SET NOCOUNT (Transact-SQL)

適用対象:○SQL Server (2008 以降)○Azure SQL Database○Azure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse noParallel Data Warehouse

Transact-SQLTransact-SQL ステートメントまたはストアド プロシージャで処理された行数を示すメッセージが結果セットの一部として返されないようにします。Stops the message that shows the count of the number of rows affected by a Transact-SQLTransact-SQL statement or stored procedure from being returned as part of the result set.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax


SET NOCOUNT { ON | OFF }   

RemarksRemarks

SET NOCOUNT が ON の場合、行数は返されません。When SET NOCOUNT is ON, the count is not returned. SET NOCOUNT が OFF の場合、行数が返されます。When SET NOCOUNT is OFF, the count is returned.

SET NOCOUNT が ON の場合でも、@@ROWCOUNT 関数は更新されます。The @@ROWCOUNT function is updated even when SET NOCOUNT is ON.

SET NOCOUNT ON を指定すると、ストアド プロシージャ内の各ステートメントに対する DONE_IN_PROC メッセージは、クライアントに送信されなくなります。SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the client for each statement in a stored procedure. このため、実際に返すデータが少量のステートメントで構成されるストアド プロシージャ、または Transact-SQLTransact-SQL ループを含むプロシージャの場合、ネットワーク通信量が大きく減少するので、SET NOCOUNT を ON に設定するとパフォーマンスが大きく向上します。For stored procedures that contain several statements that do not return much actual data, or for procedures that contain Transact-SQLTransact-SQL loops, setting SET NOCOUNT to ON can provide a significant performance boost, because network traffic is greatly reduced.

SET NOCOUNT で指定される設定は、解析時ではなく実行時に有効になります。The setting specified by SET NOCOUNT is in effect at execute or run time and not at parse time.

この設定の現在の設定を表示するには、次のクエリを実行します。To view the current setting for this setting, run the following query.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';  
IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 'ON';  
SELECT @NOCOUNT AS NOCOUNT;  

アクセス許可Permissions

ロール public のメンバーシップが必要です。Requires membership in the public role.

使用例Examples

次の例では、処理された行数に関するメッセージを表示しないようにします。The following example prevents the message about the number of rows affected from being displayed.

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

参照See Also

@@ROWCOUNT (Transact-SQL) @@ROWCOUNT (Transact-SQL)
SET ステートメント (Transact-SQL)SET Statements (Transact-SQL)