powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Узнать каким триггером обновляется таблица
8 сообщений из 8, страница 1 из 1
Узнать каким триггером обновляется таблица
    #39952851
Здравствуйте!

Есть таблица, которая обновляется неким триггером. Скажите, можно ли узнать каким триггером обновляется таблица?
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39952967
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркун
Здравствуйте!

Есть таблица, которая обновляется неким триггером. Скажите, можно ли узнать каким триггером обновляется таблица?
Удобней всего поискать в коде.
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953065
alexeyvg, а можно сделать такой поиск по телу всех триггеров в базе каким-то запросом?
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953100
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркун,

вариант один: если вам нужно понять какие триггеры висят на вашей таблице
Код: sql
1.
select [name] from sys.triggers where [object_id] = object_id('имя_вашей_таблицы]');




вариант второй: из триггера который висит на таблице номер 1 идет добавление каких либо строк в таблицу 2
Код: sql
1.
2.
3.
4.
5.
6.
7.
select
      object_name([referencing_id]) as [trigger_name],
      object_name(t.[parent_id]) as [source_table_name]
from sys.triggers t
    join sys.sql_expression_dependencies ed on ed.[referencing_id] = t.[object_id]
where [referenced_entity_name] = 'T2'
  and [referenced_class] = 1;



такая выборка не сработает если в коде модуля используется динамический sql к примеру:
Код: sql
1.
2.
3.
4.
5.
6.
create table T1 (id int);
create table T2 (id int);

create or alter trigger TR1 on T1 for insert
as
exec ('insert into T2 values(1)');



в таком случае вам нужен поиск по тексту модулей:
Код: sql
1.
select [name] from sys.objects where [type] = 'TR' and charindex('T2', object_definition([object_id])) > 0;
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953235
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркун,

Если у вас нет проекта базы, то можете установить SQLSearch для SSMS.
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953288
Спасибо всем
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953291
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Борис Гаркун
Здравствуйте!

Есть таблица, которая обновляется неким триггером. Скажите, можно ли узнать каким триггером обновляется таблица?
Удобней всего поискать в коде.


а нет способа получить Call Stack процедур и триггеров в данной точке кода?
...
Рейтинг: 0 / 0
Узнать каким триггером обновляется таблица
    #39953300
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
alexeyvg
пропущено...
Удобней всего поискать в коде.


а нет способа получить Call Stack процедур и триггеров в данной точке кода?
Не, предлагали это в микрософте, в 11 и 14 году, не сделали.
Наверное, не смогли обосновать, как бизнес сможет заработать на этой фиче...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Узнать каким триггером обновляется таблица
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]