適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
傳回受到前一個陳述式所影響的資料列數。 如果資料列的數目超過 20 億,請使用 ROWCOUNT_BIG。
語法
@@ROWCOUNT
傳回類型
int
備註
Transact-SQL 語句可以透過下列方式設定值 @@ROWCOUNT :
- 設定
@@ROWCOUNT為受影響的或讀取的數據列數目。 數據列可能會或可能不會傳送至用戶端。 - 保留
@@ROWCOUNT先前的語句執行。 - 重設為
@@ROWCOUNT0,但不會將值傳回給用戶端。
讓簡單指派的語句一律會將 @@ROWCOUNT 值設定為 1。 它不會傳送任何資料列給用戶端。 這些語句的範例包括: SET @local_variable、 RETURN、 READTEXT和 select,而不需查詢語句,例如 SELECT GETDATE() 或 SELECT '<Generic Text>'。
在查詢中進行指派或使用 RETURN 的語句,會將 @@ROWCOUNT 值設定為查詢所影響或讀取的數據列數目,例如: SELECT @local_variable = c1 FROM t1。
數據操作語言 (DML) 語句會將 @@ROWCOUNT 值設定為受查詢影響的數據列數目,並將該值傳回給用戶端。 DML 語句可能不會將任何數據列傳送至用戶端。
DECLARE CURSOR 將 FETCH 值設定 @@ROWCOUNT 為 1。
EXECUTE 語句會保留前一個 @@ROWCOUNT。
USE、SET <option>、、、DEALLOCATE CURSORCLOSE CURSORPRINTRAISERROR、 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