我一直在寻找一种方法来获取有关已完成的SQL事务的信息.由于我使用C#连接到数据库,因此我想知道在特定事务期间有多少记录被更新,插入或删除.
有没有办法做到这一点?
提前致谢
最佳答案
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()