USE [DNF_09] GO

/****** Object:  DdlTrigger [tri_DDL_DATABASE_LEVEL_EVENTS]    Script Date: 11/01/2011 10:17:04 ******/ SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

--建立触发器 CREATE   TRIGGER   [tri_DDL_DATABASE_LEVEL_EVENTS]   ON   DATABASE   FOR   DDL_DATABASE_LEVEL_EVENTS   AS

      DECLARE   @data   XML       SET   @data   =   EVENTDATA()       declare @ObjectName nvarchar(100); set @ObjectName=@data.value( '(/EVENT_INSTANCE/ObjectName)[1] ',   'nvarchar(100) ')       declare @EventType nvarchar(100); set @EventType=@data.value( '(/EVENT_INSTANCE/EventType)[1] ',   'nvarchar(100) ')          --命名规范检查    declare @ReCheck nvarchar(200);set @ReCheck=''       if ((left(@ObjectName,4)<>'Dnft' and left(@ObjectName,8)<>'Tmp_Dnft') and @EventType='CREATE_TABLE')          set @ReCheck=' 表的命名必段以[Dnft_]开头'       if ((left(@ObjectName,4)<>'Dnfv' and left(@ObjectName,8)<>'Tmp_Dnfv') and @EventType='CREATE_VIEW')          set @ReCheck=' 视图的命名必段以[Dnfv_]开头'       if ((left(@ObjectName,4)<>'Dnff' and left(@ObjectName,8)<>'Tmp_Dnff') and @EventType='CREATE_FUNCTION')          set @ReCheck=' 函数的命名必段以[Dnff_]开头'       if ((left(@ObjectName,5)<>'Dnfsp' and left(@ObjectName,9)<>'Tmp_Dnfsp') and @EventType='CREATE_PROCEDURE')          set @ReCheck=' 存储过程的命名必段以[Dnfsp_]开头'       if ((left(@ObjectName,4)<>'idx_' and left(@ObjectName,8)<>'Tmp_idx_') and @EventType='CREATE_INDEX')          set @ReCheck=' 索引的命名必段为[idx_+表名+字段名]'                if (@ReCheck<>'')       begin     --DDL触发器测试     /**/     insert Dnft_log_Temp(data01,data02) values(@ObjectName,@EventType)     --select * from Dnft_log_Temp     --delete Dnft_log_Temp                     PRINT ''+char(13)+char(10)                +'+++++++++++++++++++++++++++++++++++++'+char(13)+char(10)                +''+char(13)+char(10)                              +'请注意: '+char(13)+char(10)                +''+char(13)+char(10)                +'    '+@ReCheck+',如有疑问请查询Dnf开发规范!' +char(13)+char(10)                +'----'+char(13)+char(10)                +' '+char(13)+char(10)                +'---'+char(13)+char(10)                +''+char(13)+char(10)                +'+++++++++++++++++++++++++++++++++++++'+char(13)+char(10)                +''+char(13)+char(10)                          ROLLBACK;    end          --DDL更新相关字段数据       select @ObjectName       if (left(@ObjectName,4)='Dnft' and @EventType='CREATE_TABLE')       begin

    exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'key_seq','[varchar](50) DEFAULT (newid()) NOT NULL','主键'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'up_uid','[varchar](20) NOT NULL  DEFAULT ('''')','更新人账号'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'up_dtime','[datetime] NOT NULL  DEFAULT (getdate())','更新日期'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'up_LKey','[varchar](50) NULL','更新键'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'cr_uid','[varchar](20) NOT NULL  DEFAULT ('''')','创建人账号'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'cr_dtime','[datetime] NOT NULL  DEFAULT (getdate())','创建日期'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'cr_LKey','[varchar](50) NULL','创建键'     exec  Dnfsp_sql_OneTableCreateCol @ObjectName,'OrgKey','[varchar](50) NULL','组织键'    end

GO

SET ANSI_NULLS OFF GO   SET QUOTED_IDENTIFIER OFF GO

DISABLE TRIGGER [tri_DDL_DATABASE_LEVEL_EVENTS] ON DATABASE GO

ENABLE TRIGGER [tri_DDL_DATABASE_LEVEL_EVENTS] ON DATABASE GO