@@ROWCOUNT (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mengembalikan jumlah baris yang dipengaruhi oleh pernyataan terakhir. Jika jumlah baris lebih dari 2 miliar, gunakan ROWCOUNT_BIG.
Sintaks
@@ROWCOUNT
Jenis yang dikembalikan
int
Keterangan
Pernyataan Transact-SQL dapat mengatur nilai dengan @@ROWCOUNT
cara berikut:
- Atur
@@ROWCOUNT
ke jumlah baris yang terpengaruh atau dibaca. Baris mungkin atau mungkin tidak dikirim ke klien. - Pertahankan
@@ROWCOUNT
dari eksekusi pernyataan sebelumnya. - Reset
@@ROWCOUNT
ke 0 tetapi jangan kembalikan nilainya ke klien.
Pernyataan yang membuat penugasan sederhana selalu mengatur nilai ke @@ROWCOUNT
1
. Tidak ada baris yang dikirim ke klien. Contoh pernyataan ini adalah: SET @local_variable
, , RETURN
READTEXT
, dan pilih tanpa pernyataan kueri seperti SELECT GETDATE()
atau SELECT '<Generic Text>'
.
Pernyataan yang membuat penugasan dalam kueri atau digunakan RETURN
dalam kueri mengatur @@ROWCOUNT
nilai ke jumlah baris yang terpengaruh atau dibaca oleh kueri, misalnya: SELECT @local_variable = c1 FROM t1
.
Pernyataan bahasa manipulasi data (DML) mengatur @@ROWCOUNT
nilai ke jumlah baris yang terpengaruh oleh kueri dan mengembalikan nilai tersebut ke klien. Pernyataan DML mungkin tidak mengirim baris apa pun ke klien.
DECLARE CURSOR
dan FETCH
atur nilai ke 1
@@ROWCOUNT
.
EXECUTE
pernyataan mempertahankan yang sebelumnya @@ROWCOUNT
.
Pernyataan seperti USE
, , SET <option>
, CLOSE CURSOR
DEALLOCATE CURSOR
, PRINT
, , RAISERROR
, BEGIN TRANSACTION
, atau COMMIT TRANSACTION
reset ROWCOUNT
nilai ke 0
.
Prosedur tersimpan yang dikompilasi secara asli mempertahankan sebelumnya @@ROWCOUNT
. Pernyataan Transact-SQL di dalam prosedur tersimpan yang dikompilasi secara asli tidak mengatur @@ROWCOUNT
. Untuk informasi selengkapnya, lihat Prosedur Tersimpan yang Dikompilasi Secara Asli.
Contoh
Contoh berikut menjalankan UPDATE
pernyataan dan menggunakan @@ROWCOUNT
untuk mendeteksi apakah ada baris yang diubah.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO