Sql server 记录执行的查询';表中的信息

Sql server 记录执行的查询';表中的信息,sql-server,ssms,Sql Server,Ssms,是否有一种方法可以在每次执行查询时记录查询并将查询信息存储在表中?当有人执行一个查询时,它会被查看,如果查询中包含特定的内容,那么查询、执行的用户和执行时间将存储在一个表中 我现在看到的唯一方法是让存储过程每X时间触发一次,以遍历查询历史记录。找到一个查询时,它将存储在日志表中。在SQL Server Management Studio中介绍查看查询历史记录的各种方法可能会对您有所帮助 一个简单的第三方工具支持此功能(尽管保存为XML文件而不是SQL Server表),它是ApexSQL Com

是否有一种方法可以在每次执行查询时记录查询并将查询信息存储在表中?当有人执行一个查询时,它会被查看,如果查询中包含特定的内容,那么查询、执行的用户和执行时间将存储在一个表中

我现在看到的唯一方法是让存储过程每X时间触发一次,以遍历查询历史记录。找到一个查询时,它将存储在日志表中。

在SQL Server Management Studio中介绍查看查询历史记录的各种方法可能会对您有所帮助


一个简单的第三方工具支持此功能(尽管保存为XML文件而不是SQL Server表),它是ApexSQL Complete

有一些商业产品可以为您做到这一点,而且比您自己组装的产品更可靠。这是高度监管/审计环境中的常见要求。@alroc很公平,但如果有办法,我更愿意留在内部。那么您的问题的答案是肯定的,可能有办法-取决于您的SQL Server版本。如果您需要关于如何操作的完整说明,那么这超出了堆栈溢出的范围。您还可以尝试访问SQL星期六。但是,我再强调也不为过——不要实现你在其他地方可以获得的东西。这可能会更好,而且你不会永远支持它。我可以在这条线索上保证这个答案:我在一家商店工作过,他们或多或少都是这样追踪的。以这种方式使用跟踪非常方便,但需要一些维护。