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

时间:2012-03-21 02:11:42

标签: sql database triggers database-trigger

我正在使用SQL Server 2008。

我正在创建一个这样的DDL触发器:

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

我可以获取已创建的表吗?

在普通表中插入或删除的内容会触发吗?!

2 个答案:

答案 0 :(得分:3)

试试这个:

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 :(得分:1)

我相信你需要从EventData()的CommandText中提取它。

http://msdn.microsoft.com/en-us/library/ms187909.aspx