У меня есть 2 таблицы, таблица A и таблица B. У меня есть триггер на A есть вход столбца таблицы B. Так что же происходит, когда я обновляю таблицу A: будет ли также обновляться таблица B?
A
B
Что мне делать, если я тоже хочу обновить таблицу B?
Чисто на основе вашего примера (если я правильно понимаю) это звучит как отношение внешнего ключа, где вы указываете каскад UPDATE.
Пример кода:
ALTER TABLE [dbo].[Foo] WITH CHECK ADD CONSTRAINT [FK_FooBar] FOREIGN KEY([BarID]) REFERENCES [dbo].[Bar] ([BarID]) ON UPDATE CASCADE
Что делаетизмените BarID в таблице dbo.Foo и перейдите к полю BarID, на которое оно ссылается в dbo.Bar
Однако если мы используем триггеры, вы не можете явно запустить триггер изнутри триггера. Однако вы можете выполнить действие, которое вызывает срабатывание триггера, выполнив условия триггера. И если опция сервера установлена (которая по умолчанию имеет значение true), чтобы позволить триггерам активировать другие триггеры, будет запущен вторичный триггер.
Обратите внимание, что эта опция только для триггеров AFTER, которые могут быть «сцеплены» / вложеныдо 32 раз. И не ВМЕСТО триггеров.
Msdn статьи: