sql - 返回受 SQL 事务影响的总行数

标签 sql sql-server tsql

我在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/

相关文章:

sql - 是否有任何信息可以获取存储过程输入参数的默认值?

php - 特定行上的自举表 ionic

c# - 当源 DataTable 行具有 DBNull.Value 时,SqlBulkCopy 到默认列值失败的表中

SQL多列分组在一行中

sql - 在用户定义的函数中声明一个表变量

sql - 每组选择一行而不指定顺序?

c# - 如何在 C# 或 SQL Server 中找到邮政编码之间的距离?

sql-server - SQL : find continuous date ranges across multiple rows?

sql-server - 如何在 T-SQL 中编写 LIKE 以显示除包含 ":","-","~"的行之外的所有行?

sql - CASE 内的多个 ORDER BY