@@ROWCOUNT (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
最後のステートメントの影響を受けた行数を返します。 行の数が 20億を超える場合は、次のようを使用して ROWCOUNT_BIGです。
構文
@@ROWCOUNT
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
戻り値の型
int
解説
TransactSQL ステートメントでは、次の方法で @@ROWCOUNT に値を設定できます。
@@ROWCOUNT に、影響を受ける行または読み取られる行の数を設定します。 行はクライアントに送信される場合と、送信されない場合があります。
前にステートメントを実行したときの @@ROWCOUNT を保存します。
@@ROWCOUNT を 0 にリセットしますが、クライアントにはその値を返しません。
単純な割り当てを行うステートメントの場合、@@ROWCOUNT の値は常に 1 に設定されます。 行はクライアントに送信されません。 これらのステートメントの例を示します。 設定local_variable, 、RETURN、READTEXT、および選択せずに、クエリ SELECT getdate や SELECT 'などのステートメントを実行する ' *一般テキスト*'です。
クエリで割り当てを行うステートメント、またはクエリ セットで RETURN を使用するステートメントは、クエリに影響を受ける行数、またはクエリで読み取られる行数を @@ROWCOUNT 値に設定します。たとえば、SELECT @local_variable = c1 FROM t1 のようになります。
データ操作言語 (DML) ステートメントは、@@ROWCOUNT 値に、クエリに影響を受ける行の数を設定し、この値をクライアントに返します。 DML ステートメントは、クライアントに行を送信しない場合もあります。
DECLARE CURSOR および FETCH は、@@ROWCOUNT 値に 1 を設定します。
EXECUTE ステートメントは、前の @@ROWCOUNT を保存します。
USE、SET <option>、DEALLOCATE CURSOR、CLOSE CURSOR、PRINT、RAISERROR、BEGIN TRANSACTION、COMMIT TRANSACTION などのステートメントは、ROWCOUNT 値を 0 にリセットします。
ネイティブ コンパイル ストアド プロシージャでは、直前の @@ROWCOUNT が維持されます。 ネイティブ コンパイル ストアド プロシージャ内の Transact-SQL ステートメントでは、@@ROWCOUNT が設定されません。 詳細については、次を参照してください。 ネイティブ コンパイル ストアド プロシージャです。
例
次の例では、UPDATE
ステートメントを実行し、@@ROWCOUNT
を使用して、変更された行があるかどうかを調べます。
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO
参照
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示