The Wayback Machine - http://web.archive.org/web/20130124024231/http://msdn.microsoft.com:80/zh-tw/library/ms187316(v=sql.90).aspx
Expand Minimize
本主題尚未接受評分 - 為這個主題評分

@@ROWCOUNT (Transact-SQL)

傳回受到前一個陳述式所影響的資料列數。如果資料列的數目超過 20 億,請使用 ROWCOUNT_BIG。

主題連結圖示 Transact-SQL 語法慣例


@@ROWCOUNT

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 <option>、DEALLOCATE CURSOR、CLOSE CURSOR、BEGIN TRANSACTION 或 COMMIT TRANSACTION 等陳述式,會將 ROWCOUNT 值重設為 0。

下列範例會執行 UPDATE 陳述式,並且使用 @@ROWCOUNT 來偵測是否有任何資料列變更。

USE AdventureWorks;
GO
UPDATE HumanResources.Employee 
SET Title = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO
本文對您有任何幫助嗎?
(剩餘 1500 個字元)

社群新增項目

新增
© 2013 Microsoft. 著作權所有,並保留一切權利。