Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrátí počet řádků ovlivněných posledním příkazem. Pokud je počet řádků větší než 2 miliardy, použijte ROWCOUNT_BIG.
Syntaxe
@@ROWCOUNT
Návratové typy
int
Poznámky
Transact-SQL příkazy mohou nastavit hodnotu v @@ROWCOUNT následujícím způsobem:
- Nastavte
@@ROWCOUNTpočet ovlivněných nebo přečtených řádků. Řádky můžou být klientovi posílány, ale také nemusí. - Uchovávejte
@@ROWCOUNTse od předchozího provedení výroku. - Resetujte
@@ROWCOUNTna 0, ale nevraťte hodnotu klientovi.
Výroky, které vytvářejí jednoduché přiřazení, vždy nastavují @@ROWCOUNT hodnotu na 1. Klientu nejsou posílány žádné řádky. Příklady těchto tvrzení jsou: , , , a select bez dotazových příkazů, SET @local_variablejako je nebo SELECT '<Generic Text>'SELECT GETDATE() . READTEXTRETURN
Příkazy, které přiřadí dotaz nebo použijí RETURN v dotazu, nastavují @@ROWCOUNT hodnotu na počet řádků ovlivněných nebo přečtených dotazem, například: SELECT @local_variable = c1 FROM t1.
Příkazy jazyka pro manipulaci s daty (DML) nastavují @@ROWCOUNT hodnotu na počet řádků ovlivněných dotazem a vrací tuto hodnotu klientovi. DML výpisy nemusí klientovi posílat žádné řádky.
DECLARE CURSOR a FETCH nastavte @@ROWCOUNT hodnotu na 1.
EXECUTE Výroky zachovávají předchozí @@ROWCOUNT.
Výroky jako , , , , , PRINT, RAISERROR, , BEGIN TRANSACTION, nebo COMMIT TRANSACTION resetovat ROWCOUNT hodnotu na 0. CLOSE CURSORDEALLOCATE CURSORSET <option>USE
Nativně kompilované uložené procedury zachovávají předchozí @@ROWCOUNT. Transact-SQL příkazy uvnitř nativně kompilovaných uložených procedur nenastavují @@ROWCOUNT. Další informace naleznete v tématu Nativně zkompilované uložené procedury.
Examples
Následující příklad vykonává UPDATE příkaz a používá @@ROWCOUNT se k detekci, zda byly změněny některé řádky.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO