mssql sqlserver 通过eventData函数获取”数据库触发器”的相关信息


摘要:
下文将展示在数据库触发器中,使用eventData函数,获取当前数据库触发器的操作信息,
如下所示:


----1 创建日志表  
create table Db_log(keyId int identity,writeDate datetime default getdate(),dataInfo xml)
go
create table A(keyId int)----创建表
go
insert into A (keyId)values(1),(2),(3),(4),(5),(6) ----插入数据
go

/*创建数据库触发器*/
CREATE TRIGGER tr_dataBase_dropTable  
ON DATABASE  
FOR DROP_TABLE, ALTER_TABLE
AS   

declare @tableName varchar(100)

DECLARE @dataInfo AS XML;
SELECT @dataInfo = EVENTDATA();
insert into Db_log(dataInfo)values(@dataInfo) 
go

ENABLE TRIGGER tr_dataBase_dropTable ON DATABASE ---开启数据库触发器
go

drop table A  ---删除表,生成日志信息
go

select * from Db_log  ---查询日志
go
drop trigger tr_dataBase_dropTable on database

go
truncate table Db_log
drop table Db_log
mssql_sqlserver_eventData日志信息

mssql_sqlserver_eventData日志信息