Захватите нарушение ограничения первичного ключа в SQL Server 2008 - PullRequest
1 голос
/ 10 августа 2011

есть ли способ автоматически зафиксировать (либо в журнале сервера SQL, либо в журнале событий Windows) нарушение ограничения из-за вставок в таблицу сервера SQL с повторяющимися значениями первичного ключа?

для примера: при попытке вставитьдубликат первичного ключа в SQL Server Management Studio. Я получаю следующую ошибку

Сообщение 2627, уровень 14, состояние 1, строка 2 Нарушение ограничения PRIMARY KEY 'PK_ Customer _A4AE64D87F60ED59'.Невозможно вставить дубликат ключа в объект «dbo.Customer».Оператор был прерван.

Но я не могу найти это сообщение в журналах сервера SQL или в журнале событий Windows.

Спасибо

1 Ответ

1 голос
/ 11 августа 2011

Эта информация не регистрируется автоматически с помощью SQL. Есть несколько способов сделать это, но вам придется выполнить настройку / настройку самостоятельно, и ни один из них не будет простым в реализации.

Самый простой из них - использовать SQL Profiler, отслеживать событие Exception и фильтровать по соответствующему номеру ошибки (или числам, которые могут быть несколько похожих исключений для трассировки). Это может быть проблематично, если вам нужна постоянная постоянная запись этой информации.

Что-то может быть сделано с системой оповещения агента SQL. Я никогда не использовал это, и, кажется, вспомнил, что требовал, чтобы предупреждения записывались в журнал событий Windows, поэтому он может не работать - но все же стоит поискать.

Почти все остальное требует изменения вашего кода, чтобы отследить и отследить возникшие ошибки. Это может быть очень неудобно, и детали будут зависеть от характера и степени вашей кодовой базы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...