我在设置ALL SERVER触发器时遇到问题。 我正在使用Adventureworks2012数据库来尝试获取审计触发器的工作。 我想理想情况下触发器写入数据库,如果有人在数据库级别进行更新,插入或删除操作,我会将其称为audit2012。SQL Server 2012 ALL SERVER触发器问题
我做了一个简单的触发器,写入表中,当我更新等。我的问题是,当我尝试将其更改为所有服务器。这是SQL。如果我改变了目标,所有的服务器我得到的错误:
Msg 1098, Level 15, State 1, Procedure EmpTrig, Line 4
The specified event type(s) is/are not valid on the specified target object.
代码:
USE [AdventureWorks2012]
GO
/****** Object: Trigger [HumanResources].[EmpTrig]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [HumanResources].[EmpTrig]
ON ALL SERVER
FOR UPDATE, DELETE, INSERT
AS
BEGIN
-- Insert statements for trigger here
update [HumanResources].[Employee] set JobTitle = 'UPDATE TRIGGER' where BusinessEntityID = 290
END
您的帮助表示赞赏。
我正在使用sql server 2012 express,并且被限制使用它。是否有可能没有审计。我已经研究过审计,但不可能对express进行审计,而且我也试图使用profiler,但非付费的对我来说并不是很有用。我还有什么可以捕获DDL事件吗? –
我会在你想要审计的每张表上创建一个触发器。无法在服务器级别捕获DML事件(插入,更新和删除不是DDL事件)。 –