SqlServer2005 怎样建触发器 防止数据表被删除?????

2025年03月24日 19:09
有1个网友回答
网友(1):

我这里有一个  创建表的触发器,  你参考着修改修改成  删除表的吧


1> CREATE TRIGGER CretaeTableTrigger
2> ON DATABASE
3> FOR CREATE_TABLE
4> AS
5> BEGIN
6>   DECLARE @EventData  AS xml;
7>
8>   DECLARE @EventType     AS varchar(100);
9>   DECLARE @PostTime      AS varchar(100);
10>   DECLARE @ServerName    AS varchar(100);
11>   DECLARE @LoginName     AS varchar(100);
12>   DECLARE @DatabaseName  AS varchar(100);
13>   DECLARE @CommandText   AS varchar(100);
14>
15>   SET @EventData = EVENTDATA();
16>
17>   SELECT
18>     @EventType    = t.c.value('(EventType)[1]',      'varchar(100)' ),
19>     @PostTime     = t.c.value('(PostTime)[1]',       'varchar(100)' ),
20>     @ServerName   = t.c.value('(ServerName)[1]',     'varchar(100)' ),
21>     @LoginName    = t.c.value('(LoginName)[1]',      'varchar(100)' ),
22>     @DatabaseName = t.c.value('(DatabaseName)[1]',   'varchar(100)' ),
23>     @CommandText  = t.c.value('(TSQLCommand/CommandText)[1]',   'varchar(100
)' )
24>   FROM
25>     @EventData.nodes('/EVENT_INSTANCE') t(c);
26>
27>   PRINT( 'CREATE_TABLE'  );
28>   PRINT( @EventType  );
29>   PRINT( @PostTime  );
30>   PRINT( @ServerName  );
31>   PRINT( @LoginName  );
32>   PRINT( @DatabaseName  );
33>   PRINT( @CommandText  );
34> END
35> go

1> create table yyy (a INT);
2> go
CREATE_TABLE
CREATE_TABLE
2010-10-01T21:32:24.843
HOME-BED592453C\SQLEXPRESS
HOME-BED592453C\wzq
Stock
create table yyy (a INT);