我在SQL Server T-SQL中有存储过程,从.NET中的事务范围内调用。
在我的存储过程中,我正在对一些审计表进行记录。我向审计表插入一行,然后稍后通过更新的方式填充更多信息。
我发现,如果几个人同时尝试同样的事情,其中1或2个人将成为事务死锁受害者。目前我假设在插入审计表时发生了某种形式的锁定。
我想执行对审计表的插入和更新操作,而不是在执行的事务之外,这样即使事务回滚,审计也会发生。我希望这可以防止出现任何锁定,允许多个人同时执行该过程。
有人可以帮我在T-SQL中完成此操作吗?
谢谢, Rich
更新-我后来发现审计与事务死锁无关,感谢Josh建议使用SQL Profiler跟踪死锁来源。
在我的存储过程中,我正在对一些审计表进行记录。我向审计表插入一行,然后稍后通过更新的方式填充更多信息。
我发现,如果几个人同时尝试同样的事情,其中1或2个人将成为事务死锁受害者。目前我假设在插入审计表时发生了某种形式的锁定。
我想执行对审计表的插入和更新操作,而不是在执行的事务之外,这样即使事务回滚,审计也会发生。我希望这可以防止出现任何锁定,允许多个人同时执行该过程。
有人可以帮我在T-SQL中完成此操作吗?
谢谢, Rich
更新-我后来发现审计与事务死锁无关,感谢Josh建议使用SQL Profiler跟踪死锁来源。