@@ROWCOUNT 含義


返回受上一語句影響的行數。 如果行數大於 20 億,請使用 ROWCOUNT_BIG

Transact-SQL 語句可以通過下列方式設置 @@ROWCOUNT 的值:

  • 將 @@ROWCOUNT 設置為受影響或被讀取的行的數目。 可以將行發送到客戶端,也可以不發送。

  • 保留前一個語句執行中的 @@ROWCOUNT。

  • 將 @@ROWCOUNT 重置為 0 但不將該值返回到客戶端。

執行簡單分配的語句始終將 @@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 <選項>、DEALLOCATE CURSOR、CLOSE CURSOR、BEGIN TRANSACTION 或 COMMIT TRANSACTION 等語句將 ROWCOUNT 值重置為 0。

本機編譯存儲過程保留以前的 @@ROWCOUNT。 本機編譯存儲過程中的 Transact-SQL 語句不設置 @@ROWCOUNT。 有關詳細信息,請參閱本機編譯的存儲過程簡介

示例
 

以下示例執行 UPDATE 語句並使用 @@ROWCOUNT 來檢測是否更改了任何行。

 
 
USE AdventureWorks2012;
GO
UPDATE HumanResources.Employee 
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM