DDL операторы против удаленных вставлены в триггер DML - PullRequest
0 голосов
/ 21 декабря 2009

Я пытаюсь найти влияние выполнения оператора DDL на удаленные и вставленные логические таблицы внутри триггера таблицы. У меня есть:

CREATE TRIGGER [Trigger52]
ON [dbo].[Table1]
FOR DELETE, INSERT, UPDATE 
AS 
BEGIN
     create table inserted (c1 int)
     select * from inserted                        
END

Когда это сработало, я ожидал получить ошибку. Вместо этого он, похоже, полностью игнорирует оператор создания таблицы и выбирает вставленные строки.

Есть ли документация, описывающая это поведение или объяснение?

1 Ответ

0 голосов
/ 21 декабря 2009

Внутри триггеров всегда существуют две псевдотаблицы: inserted и deleted. См. Использование вставленных и удаленных таблиц :

SQL Server автоматически создает и управляет этими таблицами. Ты можешь использовать эти временные, резидентные таблицы для проверки влияния определенных изменения данных и установить условия для триггерных действий DML. Вы не можете напрямую изменить данные в таблицы или выполнить определение данных языковые (DDL) операции на таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...