SQL Server 2005中的DDL触发器的实现
SQL SERVER 2005中,新增进了很多新的特征,个中的DDL触发器是个不错的选择,按照资料起源进修如下,现清算之: 在sql server 2000中,只能为针对表发出的 DML 语句(INSERT、UPDATE 和 DELETE)界说 AFTER 触发器。SQL Server 2005 可以就整个处事器或数据库的某个范畴为 DDL 变乱界说触发器。可觉得单个 DDL 语句(譬喻,CREATE_TABLE)可能为一组语句(譬喻,DDL_DATABASE_LEVEL_EVENTS)界说 DDL 触发器。在该触发器内部,您可以通过会见 eventdata() 函数得到与引发该触发器的变乱有关的数据。该函数返回有关变乱的 XML 数据。每个变乱的架构都担任了 Server Events 基本架构。 好比,在SQL SERVER 2005中,成立一个叫DDLTrTest 的数据库,而且成立一个叫mytable的表 和Usp_Querymytable 的存储进程,如下所示 DROP DATABASE [DDLTRTEST] GO CREATE DATABASE DDLTRTEST GO USE [DDLTRTEST] GO IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[MYTABLE]') AND TYPE IN (N'U')) DROP TABLE [DBO].[MYTABLE] GO CREATE TABLE MYTABLE(ID INT, NAME VARCHAR(100)) GO INSERT INTO MYTABLE SELECT 1,'A' INSERT INTO MYTABLE SELECT 2,'B' INSERT INTO MYTABLE SELECT 3,'C' INSERT INTO MYTABLE SELECT 4,'D' INSERT INTO MYTABLE SELECT 5,'E' INSERT INTO MYTABLE SELECT 6,'F' GO USE [DDLTrTest] GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_querymytable]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_querymytable] GO CREATE PROC USP_QUERYMYTABLE AS SELECT * FROM MYTABLE GO 接下来界说一个DDL触发器如下 接下来,我们实行如下的操纵: 再执行DROP的操纵,同样触发告诫 DROP TABLE MYTABLE (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |