Асинхронные вызовы с сохраненной процедурой

Можно ли асинхронно вызывать хранимую процедуру из другой хранимой процедуры?

Изменить: В частности, я работаю с базой данных DB2.

Резюме: Да, если ваша база данных имеет службу очереди сообщений.

Вы можете отправить сообщение в очередь, и процессор очереди будет потреблять его асинхронно.

  • Oracle: очереди
  • Сервер Sql: сервисный брокер
  • DB2: event broker

Для «чистых» языков хранимых процедур (PL / Sql или T-Sql) ответ отрицательный, поскольку он работает против основной модели транзакций, доступной большинству баз данных.

Однако, если ваша база данных имеет механизм очередей, вы можете использовать ее для получения того же результата.

С MS Sql Server 2005 попробуйте хранимые процедуры Service Broker и / или CLR. Я не думаю, что в TSQL есть что-то встроенное.

Похоже, вам нужно поставить некоторые запланированные задания на место с помощью Cron (или windows equiv). Вы можете использовать начальный хранимый вызов proc, чтобы установить какой-то флаг в БД, который затем периодически проверяется заданием cron. Если вам нужно выполнить определенную задержку до выполнения второго задания, вы должны быть в состоянии сделать это, выполнив задание, запланированное заданием cron.