Di SQL Server, Anda dapat menggunakan @@ROWCOUNT
fungsi sistem untuk mengembalikan jumlah baris yang dipengaruhi oleh pernyataan T-SQL terakhir.
Misalnya, jika kueri mengembalikan 4 baris, @@ROWCOUNT
akan kembali 4.
Contoh 1 – Memilih Data
Berikut adalah contoh dasar untuk mendemonstrasikan cara kerjanya.
SELECT * FROM Dogs;
SELECT @@ROWCOUNT;
Hasil:
+---------+-----------+-----------+ | DogId | DogName | GoodDog | |---------+-----------+-----------| | 1 | Fetch | 0 | | 2 | Fluffy | 0 | | 3 | Wag | 0 | +---------+-----------+-----------+ (3 rows affected) +--------------------+ | (No column name) | |--------------------| | 3 | +--------------------+ (1 row affected)
Dalam hal ini, SELECT
. saya pernyataan mengembalikan 3 baris, jadi @@ROWCOUNT
dikembalikan 3.
Contoh 2 – Memperbarui Data
Berikut ini contoh penggunaan @@ROWCOUNT
dengan UPDATE
pernyataan untuk menguji apakah ada baris yang diperbarui atau tidak.
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 4
IF @@ROWCOUNT > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
Hasil:
(0 rows affected) A dog outside the system cannot be a good dog
Dalam hal ini, tidak ada baris yang diperbarui karena DogId tidak ada di tabel. Kami dapat menggunakan @@ROWCOUNT
dengan IF
pernyataan untuk mengembalikan pesan yang sesuai kepada pengguna.
Ini dia lagi, tapi kali ini anjingnya memang ada.
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 1
IF @@ROWCOUNT > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
Hasil:
(1 row affected) Your dog will be rewarded accordingly
Set Data Sangat Besar?
Jika menurut Anda jumlah baris yang terpengaruh oleh pernyataan akan lebih dari 2 miliar, gunakan ROWCOUNT_BIG()
sebagai gantinya.
Anda dapat menggunakannya dengan cara yang sama seperti @@ROWCOUNT
digunakan.
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 4
IF ROWCOUNT_BIG() > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
Hasil:
(0 rows affected) A dog outside the system cannot be a good dog
Kapan @@ROWCOUNT
adalah Setel Ulang
Pernyataan seperti USE
, SET <option>
, DEALLOCATE CURSOR
, CLOSE CURSOR
, PRINT
, RAISERROR
, BEGIN TRANSACTION
, atau COMMIT TRANSACTION
setel ulang @@ROWCOUNT
nilai ke 0
.
Menjalankan SELECT @@ROWCOUNT
dengan sendirinya juga akan mengembalikan 0
.