Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Retorna o número de linhas afetadas pela última instrução. Se o número de linhas for maior que 2 bilhões, use ROWCOUNT_BIG.
Convenções de sintaxe de Transact-SQL
Sintaxe
@@ROWCOUNT
Tipos de retorno
int
Comentários
As instruções Transact-SQL podem definir o valor das @@ROWCOUNT seguintes maneiras:
- Defina
@@ROWCOUNTcomo o número de linhas afetadas ou lidas. As linhas podem ou não ser enviadas ao cliente. - Preserve
@@ROWCOUNTda execução da instrução anterior. - Redefina
@@ROWCOUNTcomo 0, mas não retorne o valor para o cliente.
As instruções que fazem uma atribuição simples sempre definem o @@ROWCOUNT valor como 1. Nenhuma linha é enviada ao cliente. Exemplos dessas instruções são: , SET @local_variable, e select sem instruções de consulta, RETURNcomo READTEXT ou SELECT GETDATE()SELECT '<Generic Text>'.
As instruções que fazem uma atribuição em uma consulta ou usam RETURN em uma consulta definem o @@ROWCOUNT valor como o número de linhas afetadas ou lidas pela consulta, por exemplo: SELECT @local_variable = c1 FROM t1.
As instruções DML (linguagem de manipulação de dados) definem o @@ROWCOUNT valor como o número de linhas afetadas pela consulta e retornam esse valor ao cliente. As instruções DML podem não enviar nenhuma linha para o cliente.
DECLARE CURSOR e FETCH defina o @@ROWCOUNT valor como 1.
EXECUTEpreservam o .@@ROWCOUNT
Instruções como USE, , , SET <option>DEALLOCATE CURSOR, CLOSE CURSOR, , PRINT, RAISERROR, ou BEGIN TRANSACTION redefinem o COMMIT TRANSACTION valor para ROWCOUNT0.
Os procedimentos armazenados compilados nativamente preservam o @@ROWCOUNT. As instruções Transact-SQL dentro de procedimentos armazenados compilados nativamente não definem @@ROWCOUNT. Para saber mais, veja Procedimentos armazenados compilados nativamente.
Exemplos
O exemplo a seguir executa uma instrução UPDATE e usa @@ROWCOUNT para detectar se quaisquer linhas foram alteradas.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO