Nic*_*aro 8 sql-server logs sql-server-2008-r2 error-handling
使用 SQL Server 2008 R2:
如何写入 SQL Server 错误日志?我有一个 ROLLBACK 语句,我想将它与写入错误日志的语句结合起来用于外部监控。
例子:
BEGIN TRAN
INSERT INTO table1
SELECT *
FROM table2
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
--Write to log
RETURN
END
COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)
编辑:
我想澄清一下 - 我想写入对象资源管理器中“管理”文件夹下的“SQL Server 日志”、“当前”日志。
您需要将 RAISERROR 与 LOG 一起使用
BEGIN TRY
-- Error here
SELECT 1/0
END TRY
BEGIN CATCH
RAISERROR('Ouch... divie by zero', 16,1) WITH LOG
END CATCH
Run Code Online (Sandbox Code Playgroud)
虽然RAISERROR ... WITH LOG是可能的,但不要忘记
只有 sysadmin 固定服务器角色的成员或具有 ALTER TRACE 权限的用户才能指定 WITH LOG。
在生产中,您必须将 WITH 日志生成代码包装在正确签名的存储过程中。
根据您要实现的目标,有更好的监控选项。例如,您可以使用sp_trace_generateevent.
| 归档时间: |
|
| 查看次数: |
14930 次 |
| 最近记录: |