Saya bertanya-tanya apakah mungkin untuk mengaktifkan pemicu hanya untuk aplikasi saya saat ini dan tidak untuk sql yang dieksekusi terhadap tabel.
Situasi:
Ada dua aplikasi yang bekerja pada database yang sama. App1 dan App2.
Saya memiliki pemicu pada 'MyTable' yang seharusnya hanya dipecat ketika App1 menjalankan kueri, tetapi tidak ketika App2 melakukannya.
sql-server
sql-server-2008-r2
Patric
sumber
sumber
APP_NAME()
, Anda juga dapat menggunakanSET CONTEXT_INFO
.SET CONTEXT_INFO
biasanya digunakan untuk mengirim info ke pemicu seperti ini.Jawaban:
Meskipun bukan desain yang bagus, itu bisa dilakukan. Anda harus memasukkan logika ke dalam pelatuk sehingga kode hanya dijalankan ketika aplikasi yang benar terhubung.
sumber
app_name()
sangat mudah untuk dipalsukan melalui properti string koneksi.