Суть моего вопроса заключается в следующем стиле UPDATE заявление в триггере:Confused о триггера SQL Server, что делает UPDATE (странно формат UPDATE заявление)
update ActualTableName
set X=Y
from inserted
я бы подумал, что это синтаксис error ... таблица «ActualTableName» не появляется в предложении «from».
Итак ... это просто какая-то фанки автоматического псевдонима «Расслабиться» (т.е. он знает «вставить» является псевдонимом для ActualTableName? Это кажется маловероятным из-за более позднего запроса (см. Ниже)
Или ... есть нечто большее ... как запрос будет расширен:
update ActualTableName
set X=Y
from ActualTableName
cross join inserted
Это также получает немного незнакомца с более сложной UPDATE, что ссылки как вставленные и удаленные таблицы:
update ActualTableName
set [... some assignments ...]
from
inserted
left outer join deleted
on inserted.Id = deleted.Id
and inserted.SomeField > deleted.SomeField
where
inserted.Id <> ActualTableName.Id and
Этот запрос, как представляется, обновление записей в ActualTableName, которые не являются частью вставленной таблицы ... и это заставляет меня думать, что фактический запрос:
update ActualTableName
set [... some assignments ...]
from
ActualTableName
cross jon inserted
left outer join deleted
on inserted.Id = deleted.Id
and inserted.SomeField > deleted.SomeField
where
inserted.Id <> ActualTableName.Id and
Книги онлайн немного непрозрачным об этом и говорит, что это:
Если объект обновляется такой же, как объект, находящийся в FROM пункта и есть только одна ссылка на объект в оТ пункта, объект псевдонима может или не может быть указано. Если обновляемый объект появляется в выражении FROM более одного раза, один и только один, ссылка на объект не должна указывать псевдоним таблицы. Все другие ссылки на объект в предложении FROM должны содержать псевдоним объекта .
Итак ... может ли кто-либо обеспечить ясность, как то, что происходит?
ли первый UPDATE в вашем вопросе есть какие-то условия? Что следует за «и» в «более сложном представлении UPDATE» 'where'? Или, может быть, вы могли бы объяснить, с каким бизнес-правилом должен срабатывать триггер? Это может пролить свет на то, почему заявления выглядят так, как вы их видите (что может помочь объяснить, как они работают). –