@@ROWCOUNT akan memberikan jumlah baris yang terpengaruh oleh terakhir Pernyataan SQL, yang terbaik adalah menangkapnya ke dalam variabel lokal mengikuti perintah yang dimaksud, karena nilainya akan berubah saat Anda melihatnya lagi:
DECLARE @Rows int
DECLARE @TestTable table (col1 int, col2 int)
INSERT INTO @TestTable (col1, col2) select 1,2 union select 3,4
SELECT @example@sqldat.com@ROWCOUNT
SELECT @Rows AS Rows,@@ROWCOUNT AS [ROWCOUNT]
KELUARAN:
(2 row(s) affected)
Rows ROWCOUNT
----------- -----------
2 1
(1 row(s) affected)
Anda mendapatkan Rows nilai 2, jumlah baris yang disisipkan, tetapi ROWCOUNT adalah 1 karena SELECT @example@sqldat.com@ROWCOUNT perintah terpengaruh 1 baris
jika Anda memiliki beberapa INSERT atau UPDATE, dll. dalam transaksi Anda, Anda perlu menentukan bagaimana Anda ingin "menghitung" apa yang sedang terjadi. Anda dapat memiliki total terpisah untuk setiap tabel, satu nilai total keseluruhan, atau sesuatu yang sama sekali berbeda. Anda harus MENYATAKAN variabel untuk setiap total yang ingin Anda lacak dan tambahkan ke dalamnya setelah setiap operasi yang berlaku untuknya:
--note there is no error handling here, as this is a simple example
DECLARE @AppleTotal int
DECLARE @PeachTotal int
SELECT @AppleTotal=0,@PeachTotal=0
BEGIN TRANSACTION
INSERT INTO Apple (col1, col2) Select col1,col2 from xyz where ...
SET @example@sqldat.comexample@sqldat.com@ROWCOUNT
INSERT INTO Apple (col1, col2) Select col1,col2 from abc where ...
SET @example@sqldat.comexample@sqldat.com@ROWCOUNT
INSERT INTO Peach (col1, col2) Select col1,col2 from xyz where ...
SET @example@sqldat.comexample@sqldat.com@ROWCOUNT
INSERT INTO Peach (col1, col2) Select col1,col2 from abc where ...
SET @example@sqldat.comexample@sqldat.com@ROWCOUNT
COMMIT
SELECT @AppleTotal AS AppleTotal, @PeachTotal AS PeachTotal