首页 文章

SSMS在违反UNIQUE KEY约束的情况下在2008年和2014年显示差异错误消息[关闭]

提问于
浏览
-2

SQL Server 2008 实例中将记录插入我的表 table1 时,我收到以下错误

消息2627,级别14,状态1,行1违反UNIQUE KEY约束'IX_table1' . 无法在对象'dbo.table1'中插入重复键 .

但是在 SQL Server 2014 (上面的数据库的副本)中执行相同的查询时,我在错误消息中得到了一些区别

消息2627,级别14,状态1,行2违反UNIQUE KEY约束'IX_table1' . 无法在对象'dbo.table1'中插入重复键 . 重复键值为(xxx,) .

2014 中,错误消息指定消息中的重复值( The duplicate key value is xxx ),但在 2008 it does not 中 .

为什么这个?这是2014年的新功能吗?或者有任何设置来更改/格式化错误消息?

1 回答

  • 6

    用户强烈要求在发生PK违规时显示包含冲突的值 . 如果在插入一行的简单 INSERT 语句中发生违规,则表示无法处理,则由于插入了值而发生了违规 . 但是 INSERT 也可以插入一组,例如 . INSERT INTO ... SELECT ... FROM... 然后更难以确定集合中的哪一行导致违规 .

    在SQL Server 2014中,有一项改进是捕获导致违规的重复键并将其显示在错误消息中 .

相关问题