powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как проверить существует ли триггер?
2 сообщений из 2, страница 1 из 1
как проверить существует ли триггер?
    #36605189
caporegim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DB2 V8.2

В скрипте с
Код: plaintext
update command options using C off V on S on
пересоздается триггер. (drop, create)
Как сделать так что если триггера нет, то не выполнять команду drop trigger?
...
Рейтинг: 0 / 0
как проверить существует ли триггер?
    #36605296
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
caporegim,

Создайте процедуру для динамического выполнения команд:
command
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create procedure command
(
  in stmt varchar( 4000 )
, out rc int
, out msg varchar( 128 )
)
language sql
begin
 declare sqlcode int default  0 ;
 declare exit handler for sqlexception
  begin
   GET DIAGNOSTICS EXCEPTION  1  msg = MESSAGE_TEXT;
   SET rc=SQLCODE;
  end;
 EXECUTE IMMEDIATE stmt;
 SET rc= 0 ;
end/
и используйте её в скрипте типа:
script.sql
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
statement  1 /

begin atomic
  declare rc int;
  declare msg varchar( 128 );

  if (not exists (select  1  from syscat.triggers where trigname='...' and tabschema='...' and tabname='...')) then
    call command('create trigger ...', rc, msg);
    if (rc!= 0 ) then
      set msg =  'create trigger failed with rc: '||rtrim(char(rc));
      SIGNAL SQLSTATE '75001' SET MESSAGE_TEXT = msg;
    end if;
  end if;
end/

statement  2 /
...
как:
db2 -td/ -sf script.sql
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как проверить существует ли триггер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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