SQL Server: триггер DDL, управляющий созданием таблицы - PullRequest
4 голосов
/ 21 марта 2012

Я использую SQL Server 2008.

Я создаю триггер DDL следующим образом:

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

Могу ли я получить созданную таблицу!?

Что-то вроде вставленных или удаленных в обычной таблице триггеров?!

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Попробуйте это:

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 голос
/ 21 марта 2012

Полагаю, вам нужно извлечь его из CommandText в EventData().

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

...