如何找出是什么导致我的身份栏不断上升

Nat*_*ate 5 sql-server

我有一张桌子int identity作为 PK。有些东西导致它增加,我想知道那是什么。

举个简单的例子,昨天我插入了一条记录,得到了 ID 41,773。今天我插入了一个新记录,我得到了 ID 44,898。这些之间没有带有 ID 的记录。

有很多应用程序可以访问数据库,所以我正在检查它们的日志是否有错误;但是,我想知道是否有一种方法可以在不插入记录的情况下找出导致 IDENTITY 增量的查询。

这个表上也没有显式删除,所以我知道它不是插入+删除组合,导致这个,它必须是失败的。

Eri*_*ins 7

根据 JNK 所做的测试,最可能的情况是正在回滚但仍导致种子增加的事务。

最好的方法是跟踪(分析)活动,以便您可以捕获违规交易。这是使用 Profiler 的起点:

http://msdn.microsoft.com/en-us/library/ms181091.aspx

当您开始学习跟踪时,在跟踪方面犯的错误比您认为需要的要少。跟踪是“侵入性的”,如果您获取太多信息,可能会危及数据库实例。

在这种情况下,您正在寻找基于交易的信息。如果您在设置跟踪时有特定问题,请随时回帖。请注意,除非您可以让 GUI 过夜,否则您可能想要登录到文件。除非您尝试实时捕获某些内容,否则总体上首选记录到文件。