Aracılığıyla paylaş


@@ROWCOUNT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Son ifadenin etkilendiği satır sayısını döndürür. Eğer satır sayısı 2 milyardan fazlaysa, ROWCOUNT_BIG kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

@@ROWCOUNT

Dönüş türleri

int

Açıklamalar

Transact-SQL ifadeleri değeri aşağıdaki şekillerde ayarlayabilir @@ROWCOUNT :

  • Etkilenen veya okunan satır sayısına ayarlan @@ROWCOUNT . Satırlar müşteriye gönderilebilir ya da gönderilmeyebilir.
  • Önceki ifadenin yürütülmesini korumak @@ROWCOUNT .
  • @@ROWCOUNT 0'a sıfırlayın ama değeri istemciye geri göndermeyin.

Basit bir atama yapan ifadeler her zaman değeri olarak ayarlar @@ROWCOUNT1. Müşteriye satır gönderilmez. Bu ifadelere örnekler şunlardır: SET @local_variable, , RETURNREADTEXT, ve sorgu cümleleri olmadan seç, örneğin SELECT GETDATE() veya SELECT '<Generic Text>'.

Bir sorguda atama yapan veya sorguda kullanılan RETURN ifadeler, @@ROWCOUNT sorgu tarafından etkilenen veya okunan satır sayısına değer ayarlar, örneğin: SELECT @local_variable = c1 FROM t1.

Veri işleme dili (DML) ifadeleri, sorgudan etkilenen satır sayısına @@ROWCOUNT değeri ayar ve bu değeri istemciye geri döndürür. DML ifadeleri müşteriye satır göndermeyebilir.

DECLARE CURSOR ve FETCH değeri @@ROWCOUNT olarak ayarlayın 1.

EXECUTE ifadeler önceki @@ROWCOUNT.

, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTIONPRINTRAISERRORgibi ifadeler USEdeğeri COMMIT TRANSACTIONROWCOUNT sıfırla.0

Yerel derlenen depolanmış prosedürler önceki @@ROWCOUNT'yi korur. Transact-SQL yerel derlenmiş depolanmış prosedürlerin @@ROWCOUNTiçindeki ifadeler . Daha fazla bilgi için bkz. Yerel Olarak Derlenmiş Saklı Yordamlar.

Örnekler

Aşağıdaki örnek, bir UPDATE ifadeyi çalıştırır ve herhangi bir satır değiştirilip değiştirilmediğini tespit etmek için kullanılır @@ROWCOUNT .

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