Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bisakah pemicu SQL memanggil layanan web?

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:

  1. dalam kode pemicu Anda, sisipkan "panggil layanan web nanti" ke dalam tabel (cukup INSERT agar tetap ramping dan cepat - itu saja)

  2. 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server convert pilih kolom dan ubah menjadi string

  2. Bagaimana mengatasi kesalahan panjang maksimum (terlalu panjang) dalam kueri sql c #

  3. Nama file SQL Server vs versi

  4. Menghapus tanda kutip yang ditambahkan ke nama kolom dari Excel impor SQL Server 2008

  5. Dipisahkan Koma Daftar semua kolom di Database (NamaTabel | Nama_Kolom...)