我在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
所以,我只是想知道在我的 Insert 和 Updte 语句的事务 block 中受影响的总行数
最佳答案
您可以使用@@ROWCOUNT
变量
要获取 Inserts + update 的所有受影响的行,请声明一个变量并在其中存储行计数值。
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
关于sql - 返回受 SQL 事务影响的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21823270/