Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Може ли SQL тригер да извика уеб услуга?

Дори технически да може, това наистина не е добра идея! Тригерът трябва да е много слаб и определено не трябва да включва продължителна операция (което извикването на уеб услуга определено е)! Преосмислете своята архитектура - трябва да има по-добър начин да направите това!

Моята препоръка би била да отделите задачата да „забележите“, че трябва да извикате уеб услугата във вашия тригер, от действителното изпълнение на това извикване на уеб услуга.

Нещо като:

  1. в кода на задействане вмъкнете „обадете се на уеб услугата по-късно“ в таблица (само INSERT да го поддържа слаб и бърз - това е всичко)

  2. имате асинхронна услуга (SQL задача или за предпочитане услуга на Windows NT), която извършва тези извиквания отделно от действителното изпълнение на тригера и съхранява всички данни, извлечени от тази уеб услуга, в съответните таблици във вашата база данни.

Задействането е много деликатно нещо - винаги трябва да е много бързо, много икономично - направете INSERT или най-много две - и по всякакъв начин избягвайте курсори в тригери или други дълги операции (като извикване на уеб услуга)

Брент Озар има страхотно уебкаст (представено на SQL PASS) на 10-те най-големи грешки на разработчиците, които не се мащабират и тригерите са първото нещо, върху което се фокусира! Силно препоръчително



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкнете данните от една колона в друга таблица

  2. Как да добавите колона за файлов поток в първия дизайнер на модел Entity Framework 4.0?

  3. SQL Server Management Studio 2008 Runas потребител на различен домейн през VPN

  4. Извикване на API от съхранената процедура на SQL Server

  5. Избягали символи за търсене в пълен текст на SQL Server?