@@ROWCOUNT (Transact-SQL)@@ROWCOUNT (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retorna o número de linhas afetadas pela última instrução.Returns the number of rows affected by the last statement. Se o número de linhas for maior que 2 bilhões, use ROWCOUNT_BIG.If the number of rows is more than 2 billion, use ROWCOUNT_BIG.

Ícone de link do tópico Convenções de sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

@@ROWCOUNT  

Tipos de retornoReturn Types

intint

RemarksRemarks

As instruções Transact-SQLTransact-SQL podem definir o valor de @@ROWCOUNT das seguintes maneiras:Transact-SQLTransact-SQL statements can set the value in @@ROWCOUNT in the following ways:

  • Defina @@ROWCOUNT como o número de linhas afetadas ou lidas.Set @@ROWCOUNT to the number of rows affected or read. As linhas podem ou não ser enviadas ao cliente.Rows may or may not be sent to the client.

  • Preservar @@ROWCOUNT da execução da instrução anterior.Preserve @@ROWCOUNT from the previous statement execution.

  • Redefina @@ROWCOUNT como 0, mas não retorne o valor ao cliente.Reset @@ROWCOUNT to 0 but do not return the value to the client.

Instruções que fazem uma atribuição simples sempre definem o valor de @@ROWCOUNT como 1.Statements that make a simple assignment always set the @@ROWCOUNT value to 1. Nenhuma linha é enviada ao cliente.No rows are sent to the client. Alguns exemplos dessas instruções são: SET @local_variable, RETURN, READTEXT e selecione sem instruções de consulta, como SELECT GETDATE() ou SELECT 'Generic Text' .Examples of these statements are: SET @local_variable, RETURN, READTEXT, and select without query statements such as SELECT GETDATE() or SELECT 'Generic Text'.

As instruções que fazem uma atribuição em uma consulta ou usam RETURN em uma consulta definem o valor de @@ROWCOUNT para o número de linhas afetadas ou lidas pela consulta, por exemplo: SELECT @local_variable = c1 FROM t1.Statements that make an assignment in a query or use RETURN in a query set the @@ROWCOUNT value to the number of rows affected or read by the query, for example: SELECT @local_variable = c1 FROM t1.

As instruções DML (linguagem de manipulação de dados) definem o valor de @@ROWCOUNT como o número de linhas afetadas ou lidas pela consulta e retornam esse valor ao cliente.Data manipulation language (DML) statements set the @@ROWCOUNT value to the number of rows affected by the query and return that value to the client. As instruções DML podem não enviar nenhuma linha ao cliente.The DML statements may not send any rows to the client.

DECLARE CURSOR e FETCH definem o valor @@ROWCOUNT como 1.DECLARE CURSOR and FETCH set the @@ROWCOUNT value to 1.

As instruções EXECUTE preservam o @@ROWCOUNT anterior.EXECUTE statements preserve the previous @@ROWCOUNT.

Instruções como USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION ou COMMIT TRANSACTION redefinem o valor ROWCOUNT para 0.Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION, or COMMIT TRANSACTION reset the ROWCOUNT value to 0.

Os procedimentos armazenados compilados nativamente preservam a função @@ROWCOUNT anterior.Natively compiled stored procedures preserve the previous @@ROWCOUNT. As instruções Transact-SQLTransact-SQL dentro de procedimentos armazenados compilados nativamente não definem @@ROWCOUNT.Transact-SQLTransact-SQL statements inside natively compiled stored procedures do not set @@ROWCOUNT. Para saber mais, veja Procedimentos armazenados compilados nativamente.For more information, see Natively Compiled Stored Procedures.

ExemplosExamples

O exemplo a seguir executa uma instrução UPDATE e usa @@ROWCOUNT para detectar se quaisquer linhas foram alteradas.The following example executes an UPDATE statement and uses @@ROWCOUNT to detect if any rows were changed.

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

Consulte TambémSee Also

Funções de sistema (Transact-SQL) System Functions (Transact-SQL)
SET ROWCOUNT (Transact-SQL)SET ROWCOUNT (Transact-SQL)