Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
MEV
- Сообщения: 4
- Зарегистрирован: 24 апр 2006, 10:45
Сообщение
MEV » 04 авг 2006, 15:35
begin
execute statement 'alter trigger triggername inactive';
.................
.................
.................
.................
execute statement 'alter trigger triggername active';
end;
Сабж

-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 04 авг 2006, 15:39
НЕТ. теоретически можно, но здравый смысл в данной конструкции отсутствует напрочь.
-
Dimitry Sibiryakov
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Сообщение
Dimitry Sibiryakov » 04 авг 2006, 15:45
Практический смысл вроде бы отсутствует тоже потому что лично я не поручусь что триггер отключается сразу а не по коммиту. Сейчас придет Дмитрий и скажет наверняка.
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 04 авг 2006, 15:57
по коммиту, конечно
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 04 авг 2006, 15:59
Даже если допустить, что нечто возможно будет реализовать схожим образом, это будут не грабли даже, а Грабли.
Когда в таблице что-то не изменится по триггеру, и забывший о них ты или другой разработчик, о них не подозревающий, будет биться головой о стену силясь понять "ну как же так?! всё включено, а изменений нет!"
Был тут один... Он тремя транзакциями похожее делал. Да, триггер отключался, а после выполнения включался. Но когда возникла необходимость что-то отладить, два дня (!) сам же разбирался, "почему!?".
-
MEV
- Сообщения: 4
- Зарегистрирован: 24 апр 2006, 10:45
Сообщение
MEV » 04 авг 2006, 16:12
Эта процедура будет вызываться очень редко, в очень специфических случаях и практический смысл в ней всё таки есть. Необходима процедура которая редактирует таблицу в "ручном" режиме. Т.е можно конечно с клиента отключить триггер, запустить ХП и потом активировать его обратно, но это грабли ещё бОльшие. Ну так вопрос собственно в этом и состоит, в одной транзакции это замутить невоможно, т.е. в одной ХП тем более? Или всё же есть варианты.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 04 авг 2006, 16:41
Аж два. Датабазе шутдаун перед скользкими вещами и выполнение их в монополе. И программно-отключаемый через if и служебное поле или if и спициятельный юзер код триггеров.