Bahkan jika secara teknis bisa, itu benar-benar bukan ide yang bagus! Pemicu harus sangat ramping, dan itu pasti tidak melibatkan operasi yang panjang (yang pasti merupakan panggilan layanan web)! Pikirkan kembali arsitektur Anda - seharusnya ada cara yang lebih baik untuk melakukannya!
Rekomendasi saya adalah memisahkan tugas "pemberitahuan" bahwa Anda perlu memanggil layanan web, di pemicu Anda, dari eksekusi sebenarnya dari panggilan layanan web itu.
Sesuatu seperti:
-
dalam kode pemicu Anda, sisipkan "panggil layanan web nanti" ke dalam tabel (cukup
INSERT
agar tetap ramping dan cepat - itu saja) -
memiliki layanan asinkron (pekerjaan SQL, atau lebih disukai Layanan Windows NT) yang membuat panggilan tersebut secara terpisah dari eksekusi pemicu aktual dan menyimpan data apa pun yang diambil dari layanan web tersebut ke dalam tabel yang sesuai di database Anda.
Pemicu adalah hal yang sangat rewel - harus selalu sangat cepat, sangat ramping - lakukan INSERT
atau paling banyak dua - dan dengan segala cara hindari kursor di pemicu, atau operasi panjang lainnya (seperti panggilan layanan web)
Brent Ozar memiliki webcast yang bagus (disajikan di SQL PASS) di 10 Kesalahan Pengembang Teratas yang Tidak Menskala dan pemicu adalah hal pertama yang dia fokuskan! Sangat direkomendasikan