首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写入错误日志

写入错误日志
EN

Database Administration用户
提问于 2012-07-05 19:08:47
回答 3查看 18.3K关注 0票数 10

使用Server 2008 R2:

如何写入Server错误日志?我有一个ROLLBACK语句,我想将它与写入错误日志的语句结合起来,以便进行外部监视。

示例:

代码语言:javascript
复制
BEGIN TRAN

INSERT INTO table1
SELECT * 
FROM table2

IF @@ERROR <> 0
BEGIN
    ROLLBACK TRAN
    --Write to log
    RETURN
END

COMMIT TRAN

编辑:

我想澄清一下-我想写到对象资源管理器中的“管理”文件夹下的“Server日志”、“当前”日志中。

EN

回答 3

Database Administration用户

回答已采纳

发布于 2012-07-05 19:20:19

AFAIK,唯一的方法是使用WITH LOG函数的RAISERROR选项。请从MSDN页面中注意,要做到这一点,必须满足某些安全要求。

也就是说,Server错误日志实际上并不适用于基于应用程序的日志记录。如果您需要将监视/日志记录添加到您的应用程序中,这可能应该作为数据库中的一个表来实现(例如)。

票数 10
EN

Database Administration用户

发布于 2012-07-05 19:20:33

您需要在日志中使用RAISERROR

代码语言:javascript
复制
BEGIN TRY
  -- Error here
  SELECT 1/0
END TRY
BEGIN CATCH
  RAISERROR('Ouch... divie by zero', 16,1) WITH LOG
END CATCH
票数 8
EN

Database Administration用户

发布于 2012-07-05 19:43:28

虽然RAISERROR ... WITH LOG是可能的,但别忘了

只有sysadmin固定服务器角色的成员或具有ALTER权限的用户可以使用日志指定。

在生产中,您必须将WITH日志生成代码包装在存储过程适当签署中。

根据您想要实现的目标,有更好的监视选项。例如,可以使用sp_trace_generateevent跟踪用户消息。

票数 8
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/20455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档