在SQL Server 2008中,在将一组记录插入到我的表table1
时,由于重复数据,我得到一个唯一的密钥违例错误。这很好,但错误消息没有显示哪些数据是重复的。但在SQL Server 2014中,它也显示了重复的键值。
2014年的错误讯息
Msg 2627,Level 14,State 1,Line 2违反UNIQUE KEY约束 ' UK_table1&#39 ;.无法在对象' dbo.table1'中插入重复的密钥。的 的 重复键值为(xxx) 。
2008年的错误消息
Msg 2627,Level 14,State 1,Line 2违反UNIQUE KEY约束 ' UK_table1&#39 ;.无法在对象' dbo.table1'。
中插入重复键
这是2014年的新功能还是有任何方法可以在SQL Server 2008中显示这一功能?
注意: - 希望问题清楚,如果不是,请评论。此外,如果这是2008年以上的新功能,请为此
添加有效的参考/链接修改
答案 0 :(得分:3)
答案 1 :(得分:2)
在两台服务器上运行以下命令:
select * from sysmessages sm where sm.error = 2627
您应该看到消息模板不同。您使用的是哪个确切版本的SQL Server 2008,因为它在2008 R2中绝对可用:
违反%ls约束'%。* ls'。无法在对象'%。* ls'中插入重复键。重复键值为%ls。
通过模板回顾SQL Server 2005数据库:
违反%ls约束'%。* ls'。无法在对象'%。* ls'中插入重复键。
通过查看您的@@version
,很明显它在SQL Server 2008 RTM中不可用,但是来自@ Ponmani @@version
的SQL Server 2008 R2添加了该功能。