SQLServer EVENTDATA()函数来获取DDL 触发器信息
大连万达影院,孙悟空jr,古惑仔3演员表
-- create a log table
create table triggerlog (loginfo xml)
-- create a dummy table to delete later on
create table tabletodelete (id int primary key)
-- 新建一个新表,作为删除实验表
insert into tabletodelete values(1)
go
-- 创建一个drop table 的 ddl
create trigger stoptabledrop on database after drop_table
as
declare @eventdata as xml
set @eventdata = eventdata() -- 必须要在rollback之前截获ddl信息
rollback
print 'drop table attempt in database ' + db_name() + '.'
insert into triggerlog values(@eventdata)
执行如下删除操作:
drop table tabletodelete
会触发上面的ddl,从而回滚操作。
执行下面的sql:
select * from triggerlog
查看刚才截获的ddl信息。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
sql某个日期是当年的第几周
/* *周一作为一周的开始 *当年的1月1号所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @...
[阅读全文]
-
-
数据库SQL---范式
1、数据冗余导致的问题:冗余存储、更新异常、插入异常、删除异常。 2、函数依赖:一种完整性约束。 在关系模式r(R)中,α属于R,β属于R。 1)α函数...
[阅读全文]
-
-
数据库SQL---查询
1、查询所有列 select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,e...
[阅读全文]
-
-
-
-
网友评论