@@ROWCOUNT (Transact-SQL)
適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體
傳回受到前一個陳述式所影響的資料列數。 如果資料列的數目超過 20 億,請使用 ROWCOUNT_BIG。
Syntax
@@ROWCOUNT
注意
若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔。
傳回型別
int
備註
Transact-SQL 陳述式可以利用下列方式,在 @@ROWCOUNT 中設定該值:
將 @@ROWCOUNT 設為被影響或讀取的資料列數。 資料列不一定會傳送到用戶端。
保留來自前一個陳述式執行的 @@ROWCOUNT。
將 @@ROWCOUNT 重設為 0,但不將該值傳回用戶端。
進行簡單指派的陳述式一律會將 @@ROWCOUNT 值設為 1。 它不會傳送任何資料列給用戶端。 以下是這些陳述式的範例:SET @local_variable、RETURN、READTEXT 以及 select without query 陳述式,例如 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 <選項>、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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應