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 中进行了改进,可以捕获导致违规的重复键并将其显示在错误消息中。
在 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 中进行了改进,可以捕获导致违规的重复键并将其显示在错误消息中。