Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve o número de linhas afetadas pela última instrução. Se o número de linhas for superior a 2 mil milhões, use ROWCOUNT_BIG.
Transact-SQL convenções de sintaxe
Sintaxe
@@ROWCOUNT
Tipos de devolução
int
Observações
Transact-SQL instruções podem definir o valor em @@ROWCOUNT das seguintes formas:
- Definido
@@ROWCOUNTpara o número de linhas afetadas ou lidas. As linhas podem ou não ser enviadas ao cliente. - Guarde
@@ROWCOUNTda declaração anterior. - Reinicia
@@ROWCOUNTpara 0 mas não devolvas o valor ao cliente.
As instruções que fazem uma atribuição simples definem sempre o @@ROWCOUNT valor para 1. Não são enviadas linhas ao cliente. Exemplos destas afirmações são: SET @local_variable, RETURN, READTEXT, e select sem instruções de consulta como SELECT GETDATE() ou SELECT '<Generic Text>'.
As instruções que fazem uma atribuição numa consulta ou usam RETURN numa consulta definem o @@ROWCOUNT valor para o número de linhas afetadas ou lidas pela consulta, por exemplo: SELECT @local_variable = c1 FROM t1.
As instruções de linguagem de manipulação de dados (DML) definem o @@ROWCOUNT valor para o número de linhas afetadas pela consulta e devolvem esse valor ao cliente. As instruções DML podem não enviar linhas para o cliente.
DECLARE CURSOR e FETCH define o @@ROWCOUNT valor para 1.
EXECUTE As sentenças preservam os anteriores @@ROWCOUNT.
Afirmações como USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, , BEGIN TRANSACTION, ou COMMIT TRANSACTION redefinir o ROWCOUNT valor para 0.
Os procedimentos armazenados compilados nativamente preservam o .@@ROWCOUNT Transact-SQL instruções dentro de procedimentos armazenados compilados nativamente não definem @@ROWCOUNT. Para obter mais informações, consulte Procedimentos armazenados compilados nativamente.
Examples
O exemplo seguinte executa uma UPDATE instrução e é usado @@ROWCOUNT para detetar se alguma linha foi alterada.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO