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

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce il numero di righe modificate dall'ultima istruzione.Returns the number of rows affected by the last statement. Se il numero di righe è superiore a 2 miliardi, usare ROWCOUNT_BIG.If the number of rows is more than 2 billion, use ROWCOUNT_BIG.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

@@ROWCOUNT  

Tipi restituitiReturn Types

intint

RemarksRemarks

Le istruzioni Transact-SQLTransact-SQL possono impostare il valore di @@ROWCOUNT come descritto di seguito:Transact-SQLTransact-SQL statements can set the value in @@ROWCOUNT in the following ways:

  • Impostare @@ROWCOUNT sul numero di righe modificate o lette.Set @@ROWCOUNT to the number of rows affected or read. Le righe possono venire inviate al client o meno.Rows may or may not be sent to the client.

  • Mantenere il valore di @@ROWCOUNT della precedente istruzione eseguita.Preserve @@ROWCOUNT from the previous statement execution.

  • Reimpostare @@ROWCOUNT su 0 senza restituire il valore al client.Reset @@ROWCOUNT to 0 but do not return the value to the client.

Le istruzioni che effettuano un'assegnazione semplice impostano sempre il valore di @@ROWCOUNT su 1.Statements that make a simple assignment always set the @@ROWCOUNT value to 1. Non vengono inviate righe al client.No rows are sent to the client. Esempi di istruzioni di questo tipo sono: SET @local_variable, RETURN, READTEXT e le istruzioni di selezione senza query quali SELECT GETDATE() o SELECT 'testo generico' .Examples of these statements are: SET @local_variable, RETURN, READTEXT, and select without query statements such as SELECT GETDATE() or SELECT 'Generic Text'.

Le istruzioni che effettuano un'assegnazione in una query o usano RETURN in una query impostano il valore di @@ROWCOUNT sul numero di righe modificate o lette dalla query, ad esempio: 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.

Le istruzioni DML (Data Manipulation Language) impostano il valore di @@ROWCOUNT sul numero di righe modificate dalla query e restituiscono tale valore al client.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. Le istruzioni DML possono non inviare righe al client.The DML statements may not send any rows to the client.

DECLARE CURSOR e FETCH impostano il valore di @@ROWCOUNT su 1.DECLARE CURSOR and FETCH set the @@ROWCOUNT value to 1.

Le istruzioni EXECUTE mantengono il precedente valore di @@ROWCOUNT.EXECUTE statements preserve the previous @@ROWCOUNT.

Le istruzioni di tipo USE, SET <opzione>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION, e COMMIT TRANSACTION reimpostano il valore di ROWCOUNT su 0.Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION, or COMMIT TRANSACTION reset the ROWCOUNT value to 0.

Nelle stored procedure compilate in modo nativo viene mantenuto il valore @@ROWCOUNT precedente.Natively compiled stored procedures preserve the previous @@ROWCOUNT. Le istruzioni Transact-SQLTransact-SQL nelle stored procedure compilate in modo nativo non prevedono l'impostazione di @@ROWCOUNT.Transact-SQLTransact-SQL statements inside natively compiled stored procedures do not set @@ROWCOUNT. Per altre informazioni, vedere Natively Compiled Stored Procedures (Stored procedure compilate in modo nativo).For more information, see Natively Compiled Stored Procedures.

EsempiExamples

Nell'esempio seguente viene eseguita un'istruzione UPDATE e viene utilizzato @@ROWCOUNT per rilevare se sono state modificate righe.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  

Vedere ancheSee Also

Funzioni di sistema (Transact-SQL) System Functions (Transact-SQL)
SET ROWCOUNT (Transact-SQL)SET ROWCOUNT (Transact-SQL)