2008-12-12 4 views
0

ОС - UNIX. Я хочу вызвать сценарий оболочки для внешней проверки, когда данные в таблице меняются. Возможно ли, и если да, то каким образом.Как вызвать скрипт, когда данные таблицы изменяются в Sybase 12.5?

Большое спасибо.


Обновлено: В идеале я хотел бы назвать свой внешний скрипт один раз для любой дискретной работы: т.е.

  • обновление ...> скрипт вызова раз
  • вставки в ...> вызов сценарий один раз
  • BCP в> скрипт вызова один раз
+0

Что будет делать сценарий продажи? Это для всех изменений во всех таблицах? – dkretz 2008-12-12 23:23:27

+0

уточнено, извините! – Brabster 2008-12-12 23:41:14

ответ

1

Я думаю, что вы могли бы назвать xp_cmdshell изнутри trigge р.

Редактировать: Как уже упоминалось в комментариях, триггер срабатывает только один раз в заявлении о модификации данных. (См. books online.) Итак, если у вас есть инструкция обновления, которая затрагивает 100 строк, триггер будет запускаться только один раз, а не 100 раз. Это должно позаботиться о ваших первых двух точках (обновить, вставить).

Триггер не срабатывает на bcp. Но bcp должен произойти из командной строки, поэтому не уверен, почему вы не просто добавляете свой сценарий оболочки после каждой команды bcp?

Есть дополнительная информация о вызове xp_cmdshell с триггера here.

Некоторые дополнительные комментарии: вы не описали свою среду или то, что вы пытаетесь выполнить. Если вы находитесь в среде OLTP, вам нужно убедиться, что ваш сценарий оболочки будет работать нормально, если сразу произойдет несколько обновлений с таблицей. Если 3 пользователя выполняют обновления одновременно, ваш скрипт будет работать, если три из них будут запущены одновременно? Если вы делаете это как часть какой-либо OLAP или пакетной системы, я не уверен, почему вы не добавили сценарий оболочки в поток заданий.

 Смежные вопросы

  • Нет связанных вопросов^_^