在 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 回答
用户强烈要求在发生PK违规时显示包含冲突的值 . 如果在插入一行的简单
INSERT
语句中发生违规,则表示无法处理,则由于插入了值而发生了违规 . 但是INSERT
也可以插入一组,例如 .INSERT INTO ... SELECT ... FROM...
然后更难以确定集合中的哪一行导致违规 .在SQL Server 2014中,有一项改进是捕获导致违规的重复键并将其显示在错误消息中 .