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 }   

解説Remarks

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.

@@ROWCOUNT SET NOCOUNT が ON の場合でも、関数が更新されました。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;  

PermissionsPermissions

ロール 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)