sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får antal rader infogade av en transaktion

@@ROWCOUNT kommer att ge antalet rader som påverkas av den senaste SQL-sats, är det bäst att fånga den i en lokal variabel efter kommandot i fråga, eftersom dess värde kommer att ändras nästa gång du tittar på det:

DECLARE @Rows int
DECLARE @TestTable table (col1 int, col2 int)
INSERT INTO @TestTable (col1, col2) select 1,2 union select 3,4
SELECT @[email protected]@ROWCOUNT
SELECT @Rows AS Rows,@@ROWCOUNT AS [ROWCOUNT]

UTGÅNG:

(2 row(s) affected)
Rows        ROWCOUNT
----------- -----------
2           1

(1 row(s) affected)

du får Rows värdet 2, antalet infogade rader, men ROWCOUNT är 1 eftersom SELECT @[email protected]@ROWCOUNT kommandot påverkade 1 rad

om du har flera INSERT eller UPPDATERINGAR, etc. i din transaktion, måste du bestämma hur du vill "räkna" vad som pågår. Du kan ha en separat summa för varje bord, ett enda totalvärde eller något helt annat. Du måste DEKLARERA en variabel för varje totalsumma du vill spåra och lägga till efter varje operation som gäller den:

--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 @[email protected][email protected]@ROWCOUNT

INSERT INTO Apple (col1, col2) Select col1,col2 from abc where ...
SET @[email protected][email protected]@ROWCOUNT

INSERT INTO Peach (col1, col2) Select col1,col2 from xyz where ...
SET @[email protected][email protected]@ROWCOUNT

INSERT INTO Peach (col1, col2) Select col1,col2 from abc where ...
SET @[email protected][email protected]@ROWCOUNT

COMMIT

SELECT @AppleTotal AS AppleTotal, @PeachTotal AS PeachTotal


  1. Visual Studio 2017 visar inte MySQL i anslutningslistan

  2. TSQL för att få DISTINCT-poster beställda och sedan tillämpa radnummer

  3. Hur man får årets dag från ett datum i PostgreSQL

  4. MySQL:Hitta rader som inte deltar i ett förhållande