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 GOTry 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 GOTry 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
发布评论