SQL Server:DDL触发器,控制表创建(SQL Server : DDL trigger, controlling table creation)

我正在使用SQL Server 2008。

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

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

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

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

I'm using SQL Server 2008.

I'm creating a DDL trigger like this:

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

Can I get that table that has been created !?

Something like inserted or deleted in the normal table triggers ?!

最满意答案

尝试这个:

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

Try this:

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 GOSQL Server:DDL触发器,控制表创建(SQL Server : DDL trigger, controlling table creation)

我正在使用SQL Server 2008。

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

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

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

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

I'm using SQL Server 2008.

I'm creating a DDL trigger like this:

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

Can I get that table that has been created !?

Something like inserted or deleted in the normal table triggers ?!

最满意答案

尝试这个:

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

Try this:

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