SQL事务报告/状态

时间:2014-02-25 10:25:37

标签: c# sql .net sql-server tsql

我一直在寻找获取有关已完成的SQL事务的信息的方法。由于我使用C#连接到数据库,因此我想知道在特定事务期间有多少记录被更新,插入或删除。 有没有办法做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:1)

ExecuteNonQuery()返回受影响的行数。

    SqlCommand command = new SqlCommand(queryString, connection);
    command.Connection.Open();
    int rowsAffected = command.ExecuteNonQuery();

如果您想要多条记录,即删除,插入,更新等记录的总数。您必须使用OUTPUT参数。

        command.Parameters.Add("@DeletedRecords", SqlDbType.Int);
        command.Parameters["@DeletedRecords"].Direction = ParameterDirection.Output;

然后在您的事务存储过程中:

CREATE PROCEDURE [dbo].[TransactionReportStatus]
      @DeletedRecords INT OUTPUT
AS
BEGIN
     -- Your transaction with delete statements
     SET @DeletedRecords = @@ROWCOUNT         
END

@@ROWCOUNT是SQL Server相当于ExecuteNonQuery()

答案 1 :(得分:1)

请注意,在sql server中,对update语句有影响的行会告诉您有多少行符合选择条件,而不是实际更改的行数,而mysql则返回实际更改的行数。我更喜欢知道实际更改的行数。如果有办法在sql server中这样做,我想知道如何。