SSMS 在 2008 年和 2014 年显示关于违反唯一键约束的差异错误消息

SSMS Showing diff error message in 2008 and 2014 on Violation of UNIQUE KEY constraint

SQL Server 2008 实例中向我的 table table1 插入记录时,出现以下错误

Msg 2627, Level 14, State 1, Line 1
Violation of UNIQUE KEY constraint 'IX_table1'. Cannot insert duplicate key in object 'dbo.table1'.

但是在 SQL Server 2014(上述数据库的副本)中执行相同的查询时,我在错误消息中发现了一些差异

Msg 2627, Level 14, State 1, Line 2
Violation of UNIQUE KEY constraint 'IX_table1'. Cannot insert duplicate key in object 'dbo.table1'.
The duplicate key value is (xxx, ).

2014 中,错误消息指定了消息中的重复值 (The duplicate key value is xxx),但在 2008 中,它没有.

这是为什么?这是2014年的新功能吗?或者对 change/format 错误消息有任何设置?

用户有很大的需求,当发生PK冲突时,显示产生冲突的值。当违规发生在插入一行的简单 INSERT 语句中时,这是显而易见的,违规是由于插入的值而发生的。但是 INSERT 也可以插入一个集合,例如。 INSERT INTO ... SELECT ... FROM... 然后更难找出 集合中的哪 行导致了违规。

在 SQL Server 2014 中进行了改进,可以捕获导致违规的重复键并将其显示在错误消息中。