关于ddl_datebase 触发器 监控某张表的ddl操作

关于ddl_datebase  触发器
-- 记录xuwangjin表的 ddl操作
只针对于 create table drop table 因为object本身为table -- 2009/01/04 am 0:50徐王锦--
--
转贴请注明--
create trigger ddl_tr_xuwangjin on database
for ddl_database_level_events
as
declare @eventdata xml
select @eventdata = eventdata()
if @eventdata .value( ' (EVENT_INSTANCE/ObjectName)[1] ' , ' sysname ' ) = N ' xuwangjin '
   
and @eventdata .value( ' (EVENT_INSTANCE/ObjectType)[1] ' , ' sysname ' ) = N ' TABLE '
begin
select
EventType
= t.c.value( ' (EventType)[1] ' , ' sysname ' ),
PostTime
= t.c.value( ' (PostTime)[1] ' , ' datetime ' ),
SPID
= t.c.value( ' (SPID)[1] ' , ' int ' ),
ServerName
= t.c.value( ' (ServerName)[1] ' , ' sysname ' ),
LoginName
= t.c.value( ' (LoginName)[1] ' , ' sysname ' ),
TSQLCommand
= t.c.value( ' (TSQLCommand/CommandText)[1] ' , ' varchar(1000) ' ),
@eventdata .value( ' (EVENT_INSTANCE/TSQLCommand/SetOptions/@ANSI_NULLS)[1] ' , ' sysname ' ) as ANSI_NULLS,
@eventdata .value( ' (EVENT_INSTANCE/TSQLCommand/SetOptions/@ANSI_NULL_DEFAULT)[1] ' , ' sysname ' ) as ANSI_NULL_DEFAULT,
@eventdata .value( ' (EVENT_INSTANCE/TSQLCommand/SetOptions/@AANSI_PADDING)[1] ' , ' sysname ' ) as ANSI_PADDING,
@eventdata .value( ' (EVENT_INSTANCE/TSQLCommand/SetOptions/@QUOTED_IDENTIFIER)[1] ' , ' sysname ' ) as QUOTED_IDENTIFIER,
@eventdata .value( ' (EVENT_INSTANCE/TSQLCommand/SetOptions/@ENCRYPTED)[1] ' , ' sysname ' ) as ENCRYPTED
from @eventdata .nodes( ' EVENT_INSTANCE ' ) as t(c)
end
else
return
go

-- 测试
--
1
create table xuwangjin
(id
smallint
)


-- 2
drop table xuwangjin
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值