Condividi tramite


@@ROWCOUNT (Transact-SQL)

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

Si applica a: SQL Server (SQL Server 2008 tramite versione corrente), Database SQL di Windows Azure (versione iniziale tramite versione corrente).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

@@ROWCOUNT

Tipi restituiti

int

Osservazioni

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

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

  • Mantenere il valore di @@ROWCOUNT della precedente istruzione eseguita.

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

Le istruzioni che effettuano un'assegnazione semplice impostano sempre il valore di @@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 quali SELECT GETDATE() o SELECT 'Generic Text'.

Le istruzioni che effettuano un'assegnazione in una query o utilizzano 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 di @@ROWCOUNT sul numero di righe modificate dalla query e restituiscono tale valore al client. Le istruzioni DML possono non inviare righe al client.

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

Le istruzioni EXECUTE mantengono il precedente valore di @@ROWCOUNT.

Le istruzioni USE, SET <opzione>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION e COMMIT TRANSACTION reimpostano il valore di ROWCOUNT su 0.

Nelle stored procedure compilate in modo nativo viene mantenuto il @@ROWCOUNT precedente. Le istruzioni Transact-SQL nelle stored procedure compilate in modo nativo non prevedono l'impostazione di @@ROWCOUNT. Per ulteriori informazioni, vedere Introduzione alle 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 AdventureWorks2012;
GO
UPDATE HumanResources.Employee 
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO

Vedere anche

Riferimento

Funzioni di sistema (Transact-SQL)

SET ROWCOUNT (Transact-SQL)