SQL Server:DDL触发器,控制表的创建

4

我正在使用SQL Server 2008。

我正在创建一个DDL触发器,如下所示:

CREATE  TRIGGER  tName ON database FOR CREATE_TABLE
as
  print 'A table has been created'

我能获取已创建的表格吗?!

类似于插入或删除普通表格会触发什么吗?!


我可以知道...你想了解创建表消息的特殊原因吗? - Thit Lwin Oo
我只想知道“刚刚创建”的表名,以便我可以动态跟踪在T-SQL中动态创建的所有表。 - AMTourky
2个回答

4

试试这个:

CREATE TRIGGER TRG_TABLES
ON DATABASE 
AFTER 
    CREATE_TABLE
AS 
BEGIN
    SET NOCOUNT ON

    DECLARE @TABLE_NAME SYSNAME

    SELECT 
        @TABLE_NAME = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','SYSNAME')

    ...


END
GO

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接