@@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 relative alla sintassi Transact-SQL
Sintassi
@@ROWCOUNT
Tipi restituiti
int
Osservazioni:
Le istruzioni Transact-SQL possono impostare il valore in @@ROWCOUNT
nei modi seguenti:
- Impostare
@@ROWCOUNT
sul numero di righe interessate o lette. Le righe potrebbero o non essere inviate al client. - 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 @@ROWCOUNT
valore su 1
. Non vengono inviate righe al client. Esempi di queste istruzioni sono: SET @local_variable
, RETURN
, READTEXT
e selezionare senza istruzioni di query, SELECT GETDATE()
ad esempio o SELECT '<Generic Text>'
.
Le istruzioni che eseguono un'assegnazione in una query o usano RETURN
in una query impostano il @@ROWCOUNT
valore sul numero di righe interessate o lette dalla query, ad esempio : SELECT @local_variable = c1 FROM t1
.
Le istruzioni DML (Data Manipulation Language) impostano il @@ROWCOUNT
valore sul numero di righe interessate dalla query e restituiscono tale valore al client. Le istruzioni DML potrebbero non inviare righe al client.
DECLARE CURSOR
e FETCH
impostare il @@ROWCOUNT
valore su 1
.
EXECUTE
le istruzioni mantengono l'oggetto precedente @@ROWCOUNT
.
Istruzioni come USE
, DEALLOCATE CURSOR
SET <option>
, CLOSE CURSOR
PRINT
RAISERROR
, BEGIN TRANSACTION
o COMMIT TRANSACTION
reimpostare il ROWCOUNT
valore su .0
Le stored procedure compilate in modo nativo mantengono l'oggetto precedente @@ROWCOUNT
. Le istruzioni Transact-SQL all'interno di stored procedure compilate in modo nativo non impostano @@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