SQL Server 2005------事件触发器
2009-07-01 11:53
183 查看
基于数据对象创建,删除,登录等事件的触发器称为事件触发器。
范例:
CREATE TRIGGER [ddlDatabaseTriggerLog] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS AS
DECLARE @data XML;
DECLARE @schema sysname;
SET @data = EVENTDATA(); //获取Xml格式的事件信息
SET @schema = @data.value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname');
//也可以在@data上使用XQuery的query()方法获取节点信息,节点Layout如下
/* <EVENT_INSTANCE>
<EventType>type</EventType>
<PostTime>date-time</PostTime>
<SPID>spid</SPID>
<ServerName>name</ServerName>
<LoginName>name</LoginName>
<UserName>name</UserName>
<DatabaseName>name</DatabaseName>
<SchemaName>name</SchemaName>
<ObjectName>name</ObjectName>
<ObjectType>type</ObjectType>
<TSQLCommand>command</TSQLCommand>
</EVENT_INSTANCE>
*/
执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。测试您的 DDL 触发器以确定它们是否响应运行的系统存储过程。
例如,CREATE TYPE 语句和 sp_addtype 存储过程都将激发针对 CREATE_TYPE 事件创建的 DDL 触发器。但是,sp_rename 存储过程不会激发任何 DDL 触发器。
激发 DDL 触发器的事件组:http://msdn.microsoft.com/zh-cn/library/ms191441(SQL.90).aspx
范例:
CREATE TRIGGER [ddlDatabaseTriggerLog] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS AS
DECLARE @data XML;
DECLARE @schema sysname;
SET @data = EVENTDATA(); //获取Xml格式的事件信息
SET @schema = @data.value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname');
//也可以在@data上使用XQuery的query()方法获取节点信息,节点Layout如下
/* <EVENT_INSTANCE>
<EventType>type</EventType>
<PostTime>date-time</PostTime>
<SPID>spid</SPID>
<ServerName>name</ServerName>
<LoginName>name</LoginName>
<UserName>name</UserName>
<DatabaseName>name</DatabaseName>
<SchemaName>name</SchemaName>
<ObjectName>name</ObjectName>
<ObjectType>type</ObjectType>
<TSQLCommand>command</TSQLCommand>
</EVENT_INSTANCE>
*/
执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。测试您的 DDL 触发器以确定它们是否响应运行的系统存储过程。
例如,CREATE TYPE 语句和 sp_addtype 存储过程都将激发针对 CREATE_TYPE 事件创建的 DDL 触发器。但是,sp_rename 存储过程不会激发任何 DDL 触发器。
激发 DDL 触发器的事件组:http://msdn.microsoft.com/zh-cn/library/ms191441(SQL.90).aspx
相关文章推荐
- Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.2 菜单事件创建
- SQL Server 2005 触发器应用
- sql server 2005中的DDL触发器
- SQL Server 2005系列教学_ 触发器
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- SQL Server 2005中触发器
- SQL Server 2005的DML触发器分After触发器的研究
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- sql server 2005中的DDL触发器
- sql server 2005学习笔记之触发器简介
- SQL SERVER 2005视图、索引、存储过程、触发器、游标及事务名词解释
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- SQL Server 2005 学习笔记之触发器简介
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- [SQL2005触发器学习]-4、SQL SERVER 2005新增功能:DDL触发器
- SQL Server 2005系列教学(16) 触发器
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 12.3 Windows窗体程序中的事件
- SQL Server 2005/2008 触发器的管理和查看
- sql server 2005中的DDL触发器