Как просматривать ошибки в реальном времени при отладке скрипта или хранимого процесса в SQL Server Express 2008 - PullRequest
0 голосов
/ 18 июля 2011

Новое в отладчике SQL Server Express 2008.

Вот что происходит.Допустим, я сохранил proc с 4 операторами удаления, а 2-е удаление приводит к нарушению FK в какой-то другой таблице.Когда я выполняю процедуру sp и переключаюсь на вкладку сообщений (которая находится рядом с вкладкой результатов), я вижу ошибку нарушения fk красным цветом.

Тем не менее, если я перейду к sp и пойду построчно, не будет отображаться ошибка в реальном времени.В принципе, при входе в sp нет вкладки сообщений.Я вижу окно стека вызовов, окно наблюдения, окно точек останова и т. Д. У меня нет строк типа try catch или классических if (@@errror) goto there, и установка обработки ошибок, вероятно, будет правильно обнаружена и в отладчике.

Я планирую заняться обработкой ошибок, но пока мой вопрос касается использования отладчика.Как только я останавливаю отладчик, появляется вкладка сообщений, и я вижу нарушения fk. Как мне увидеть мои ошибки вживую вместо того, чтобы ждать, чтобы остановить отладчик ?спасибо

1 Ответ

1 голос
/ 18 июля 2011

Я бы вставил операторы try catch и записал бы сообщения об ошибках в другую таблицу с порядковым номером автоинкриминирования. Затем вы можете выбрать, какие сообщения об ошибках и в каком порядке они пришли.

Пример:

CREATE TABLE trackedErrors (
      sequence int not null identity(1,1) primary key
    , message varchar(max)
)
GO

BEGIN TRY
    --dangerous sql
    SELECT 5/0
END TRY
BEGIN CATCH
    --log error
    INSERT INTO trackedErrors(message)
    VALUES (ERROR_MESSAGE())
END CATCH

Вы можете сделать намного больше с информацией об ошибках, кроме ERROR_MESSAGE (). См. Документацию TRY-CATCH .

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