Дори технически да може, това наистина не е добра идея! Тригерът трябва да е много слаб и определено не трябва да включва продължителна операция (което извикването на уеб услуга определено е)! Преосмислете своята архитектура - трябва да има по-добър начин да направите това!
Моята препоръка би била да отделите задачата да „забележите“, че трябва да извикате уеб услугата във вашия тригер, от действителното изпълнение на това извикване на уеб услуга.
Нещо като:
-
в кода на задействане вмъкнете „обадете се на уеб услугата по-късно“ в таблица (само
INSERT
да го поддържа слаб и бърз - това е всичко) -
имате асинхронна услуга (SQL задача или за предпочитане услуга на Windows NT), която извършва тези извиквания отделно от действителното изпълнение на тригера и съхранява всички данни, извлечени от тази уеб услуга, в съответните таблици във вашата база данни.
Задействането е много деликатно нещо - винаги трябва да е много бързо, много икономично - направете INSERT
или най-много две - и по всякакъв начин избягвайте курсори в тригери или други дълги операции (като извикване на уеб услуга)
Брент Озар има страхотно уебкаст (представено на SQL PASS) на 10-те най-големи грешки на разработчиците, които не се мащабират и тригерите са първото нещо, върху което се фокусира! Силно препоръчително