Создать динамический триггер на созданной таблице, из триггера - PullRequest
0 голосов
/ 12 марта 2019

Звучит немного странно, но это то, что я пытаюсь сделать. У меня есть триггер на создание таблицы для базы данных. Я хочу затем взять эту таблицу, которая была создана, и создать на нем триггер, который прослушивает вставку. Что у меня так далеко:

USE DatabaseA;
GO
CREATE TRIGGER [TableCreationTrigger] ON DATABASE AFTER CREATE_TABLE
AS
BEGIN 
DECLARE @Data XML = EVENTDATA();

DECLARE @CreatedTable varchar(60);
SET @CreatedTable = @Data.value('(/EVENT_INSTANCE/ObjectName)[1]',  'NVARCHAR(255)');

DECLARE @sql AS NVARCHAR(MAX);
SET @sql = '
    CREATE TRIGGER CreatedTableTrigger  
        ON ' + @CreatedTable + '  
        AFTER INSERT AS  
        BEGIN 
            select * into InsertedTest from inserted
        END';
EXEC(@sql);
END
GO

Но пока я не вижу создания этого триггера. Я что-то пропустил? Или это просто невозможно? Если это невозможно, есть ли решение, о котором я не думал?

...