Очень короткий и прямой вопрос: я хочу поймать ошибку, используя try..catch и занести в файл. Возможно ли это в SQL Server 2008?Ошибка регистрации в SQL Server 2008
Любые указания, помощь приветствуется.
Очень короткий и прямой вопрос: я хочу поймать ошибку, используя try..catch и занести в файл. Возможно ли это в SQL Server 2008?Ошибка регистрации в SQL Server 2008
Любые указания, помощь приветствуется.
Просмотрите журнал ошибок SQL Server с помощью SQL Server Management Studio или любого текстового редактора.
По умолчанию журнал ошибок находится по адресу Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG
и ERRORLOG.n
.
Пройтись Viewing the SQL Server Error Log страницы
Да, вы можете.
Просто реализуйте try catch, как описано здесь TRY...CATCH. Регистрация ошибок может быть зарегистрирована либо в приложении, либо в sql путем записи ошибок в таблицу.
Если вы хотите войти в файл, вы можете сделать это с помощью SQLCLR. Проверьте ответ здесь
Там уже некоторые подобные вопросы, вы можете проверить.
Logging into table in SQL Server trigger
Best Practices - Stored Procedure Logging
Другой подход заключается в использовании Log4Sql
Подобно этому, точно не в файл, а журнал событий, я думаю, что писать в файл можно только с процедурой CLR:
BEGIN TRY
Do some error
END TRY
Begin CATCh
Declare @error nvarchar(max) = error_message()+' your data'
exec master..xp_logevent 50001, @error, 'error'
--Notify host application
RAISERROR(@error, 16, 1)
END CATCH
Msg 102, Level 15, State 1, Line 2 Неверный синтаксис рядом с «Do». Msg 102, Level 15, State 1, Line 8 Неверный синтаксис около 'error_message'. – Steam
@blasto Исправлено, но это очевидно. Не так ли? –
Как это будет работать с ROLLBACK в Begin Catch? –
Почему downvote? Единственный ответ, который приводит пример записи в файл с использованием sqlclr. – hgulyan
Извините, пропущено 8-) +1 –