Sql server 2008 r2 捕获SQL server 2008中的主键约束冲突

Sql server 2008 r2 捕获SQL server 2008中的主键约束冲突,sql-server-2008-r2,Sql Server 2008 R2,是否有方法自动捕获(在SQL server日志或窗口事件日志中)由于使用重复的主键值插入SQL server表而导致的约束冲突 例如:当我尝试在SQLServerManagementStudio中插入重复的主键时,出现以下错误 Msg 2627,第14级,状态1,第2行 违反主键约束“PK_客户_A4AE64D87F60ED59”。无法在对象“dbo.Customer”中插入重复的密钥。 声明已终止 但我在SQL server日志或Windows事件日志中找不到该消息 谢谢,SQL不会自动记录信

是否有方法自动捕获(在SQL server日志或窗口事件日志中)由于使用重复的主键值插入SQL server表而导致的约束冲突

例如:当我尝试在SQLServerManagementStudio中插入重复的主键时,出现以下错误

Msg 2627,第14级,状态1,第2行 违反主键约束“PK_客户_A4AE64D87F60ED59”。无法在对象“dbo.Customer”中插入重复的密钥。 声明已终止

但我在SQL server日志或Windows事件日志中找不到该消息


谢谢,SQL不会自动记录信息。有很多方法可以做到这一点,但是您必须自己进行设置/配置,并且没有一种方法可以简单地实现

“最简单”的方法是使用SQL事件探查器,跟踪异常事件,并过滤相应的错误号(或多个错误号,可能有几个类似的异常需要跟踪)。如果您想永久记录此信息,这可能会有问题

可以使用SQL代理警报系统执行某些操作。我从未使用过这个,我似乎记得它要求将警报写入Windows事件日志,因此它可能不起作用——但它仍然值得一看


其他大多数操作都需要修改代码,以捕获和跟踪引发的错误。这可能会非常尴尬,详细信息将取决于代码库的性质和范围。

SQL不会自动记录这些信息。有很多方法可以做到这一点,但是您必须自己进行设置/配置,并且没有一种方法可以简单地实现

“最简单”的方法是使用SQL事件探查器,跟踪异常事件,并过滤相应的错误号(或多个错误号,可能有几个类似的异常需要跟踪)。如果您想永久记录此信息,这可能会有问题

可以使用SQL代理警报系统执行某些操作。我从未使用过这个,我似乎记得它要求将警报写入Windows事件日志,因此它可能不起作用——但它仍然值得一看

其他大多数操作都需要修改代码,以捕获和跟踪引发的错误。这可能会非常尴尬,细节将取决于代码库的性质和范围