Если вы предпочитаете решение, которое не требует транзакции, но также исключает вероятность срабатывания триггера и его выполнения между моментом его создания и моментом его отключения, тогда вы можете создать триггер с в основном в нем нет кода, затем отключите его, а затем измените его, чтобы включить его фактическое тело:
create trigger dbo.MyTrigger
on dbo.MyTable
after insert
as
declare @Foo int;
--Trigger body must have at least a statement (or an "external name") so that's why the above dummy declare.
go
disable trigger dbo.MyTrigger
on dbo.MyTable;
go
alter trigger dbo.MyTrigger
on dbo.MyTable
after insert
as
declare @Foo int;
--Remove above declare statement and insert actual trigger code here.
go