@@ROWCOUNT (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Restituisce il numero di righe modificate dall'ultima istruzione. Se il numero di righe è superiore a 2 miliardi, usare ROWCOUNT_BIG.

Convenzioni di sintassi Transact-SQL

Sintassi

@@ROWCOUNT  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Tipi restituiti

int

Osservazioni:

Le istruzioni Transact-SQL possono impostare il valore di @@ROWCOUNT come descritto di seguito:

  • Impostare @@ROWCOUNT sul numero di righe interessate o lette. Le righe possono venire inviate al client o meno.

  • Mantenere @@ROWCOUNT dall'esecuzione dell'istruzione precedente.

  • Reimpostare @@ROWCOUNT su 0 ma non restituire il valore al client.

Le istruzioni che rendono un'assegnazione semplice impostano sempre il valore @@ROWCOUNT su 1. Non vengono inviate righe al client. Esempi di istruzioni di questo tipo sono: SET @local_variable, RETURN, READTEXT e le istruzioni di selezione senza query, ad esempio SELECT GETDATE() o SELECT 'testo generico'.

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.

Le istruzioni DML (Data Manipulation Language) impostano il valore @@ROWCOUNT sul numero di righe interessate dalla query e restituiscono tale valore al client. Le istruzioni DML possono non inviare righe al client.

DECLARE CURSOR e FETCH impostano il valore @@ROWCOUNT su 1.

Le istruzioni EXECUTE mantengono il @@ROWCOUNT precedente.

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.

Le stored procedure compilate in modo nativo mantengono il @@ROWCOUNT precedente. Le istruzioni Transact-SQL nelle stored procedure compilate in modo nativo non prevedono l'impostazione di @@ROWCOUNT. Per altre informazioni, vedere Natively Compiled Stored Procedures (Stored procedure compilate in modo nativo).

Esempi

Nell'esempio seguente viene eseguita un'istruzione UPDATE e viene utilizzato @@ROWCOUNT per rilevare se sono state modificate righe.

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

Vedi anche

Funzioni di sistema (Transact-SQL)
edizione Standard T ROWCOUNT (Transact-SQL)