![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема с созданием тригера [D7, IB6.x]
Denis Tkachov © (2003-08-11 11:59:00)
подскажите пожалуйста в чем тут может быть проблема?
пишу такой триггер
CREATE TRIGGER add_TV FOR TV_NAME after insert POSITION 10 AS
declare variable name varchar(100);
BEGIN
:name = mergename("t",id);
alter table tv add :name;
END
при попытке выполнить SQL генерируется исключение - "Token unknown - :"
(тут mergename(...) - UDF написана мною - "сливает" значение текстового параметра (первый параметр) с параметром типа integer - второй параметр и выдает строку, работает правильно, я проверял... )
в попытке выяснить источник ошибки, я пытаюсь выполнить такой код:
CREATE TRIGGER add_TV FOR TV_NAME after insert POSITION 10 AS
BEGIN
alter table tv add t1;
END
тут генерируется исключение - "Token unknown - alter"
хотя при выполнении кода "alter table tv add t1" вне тела тригера или процедуры никаких ошибок не возникает...
какие соображения будут?
Разве нельзя выполнять операторы ALTER TABLE в телах тригеров и процедур??
Desdechado (2003-08-11 13:00:00) [1]
как сказал Zacho, изменение метаданных доступно лишь в скриптах - об этом честно написано в документации (см. Available in ... в любой команде)
Fiend (2003-08-11 12:54:00) [2]
если в качесте имён используются зарезервированные слова, то надо бы их в кавычки взять(двойные ессесно)
Zacho (2003-08-11 12:06:00) [3]
Операторы DDL в триггерах и ХП использовать нельзя. Да и смысла особого нет. Да и не в триггере запрос alter table tv add :name , где :name - параметр, работать не будет.