Frage Gibt die Gesamtzahl der Zeilen zurück, die von SQL Transaction betroffen sind


Ich habe den folgenden Code in SQL:

SET XACT_ABORT ON
Begin Transaction
INSERT INTO TABLE_A VALUES(/*Some Values*/)
INSERT INTO TABLE_B VALUES(/*Some Values*/)
INSERT INTO TABLE_C VALUES(/*Some Values*/)

Update Table Set Values A = A WHERE id = @id /* Some thing like that*/
Commit Transaction

Also wollte ich nur die Gesamtzahl der Zeilen wissen, die von meinem Transaktionsblock der Insert and Updte-Anweisung betroffen sind


9
2018-02-17 07:37


Ursprung


Antworten:


Sie können verwenden @@ROWCOUNT Variable

Um Einfügungen + alle betroffenen Zeilen der Aktualisierung zu erhalten, deklariere eine Variable und speichere darin Zeilenzählwerte.

DECLARE @totalRows INT
SET @totalRows = 0
INSERT INTO TABLE_A VALUES(/*Some Values*/)
SET @totalRows =@totalRows + @@ROWCOUNT

INSERT INTO TABLE_B VALUES(/*Some Values*/)
SET @totalRows =@totalRows + @@ROWCOUNT

INSERT INTO TABLE_C VALUES(/*Some Values*/)
SET @totalRows =@totalRows + @@ROWCOUNT

Update Table Set Values A = A WHERE id = @id /* Some thing like that*/
SET @totalRows =@totalRows + @@ROWCOUNT

SELECT @totalRows As TotalRowsAffected

11
2018-02-17 07:40