2014-09-22 97 views
0

我调试一个存储过程执行时,给了我以下错误:不能插入表中重复键行具有唯一索引

2601: Cannot insert duplicate key row in object 'dbo.TABLEXYZ' with unique index 'ABCKEY_PRIMARY'. The duplicate key value is (abc123). 

没有通过我的存储过程被插入dbo.TABLEXYZ数据执行,我也看看是否有更新dbo.TABLEXYZ的触发器,但没有。有关如何调试复杂存储的任何提示?我应该在哪里找到找到罪魁祸首的人?

+2

从SQL Profiler开始,查找SP:StatementStarting和SP:StatementComplete事件。如果这是一个实时系统,那么您需要注意这样做对性能的影响。 – Laurence 2014-09-22 20:22:21

+0

当您执行该过程并获取此错误消息时,它应该告诉您行号和过程名称。 – 2014-09-22 20:30:57

回答

0

这可能是其中一个sub-sprocs发生了错误。这里是我的方法:

  1. 打开执行计划(查询菜单>包括实际的执行计划)
  2. 运行存储过程。当它出错时,您将有额外的选项卡调用执行计划
  3. 向下滚动到最后一个执行计划。这可能是导致错误的陈述。提供了声明的文本。

现在扫描您的数据库以查看该语句的位置。

相关问题