melarang hasil dari pemicu (opsi konfigurasi server)

Berlaku untuk:SQL Server

Gunakan opsi larang hasil dari pemicu untuk mengontrol apakah pemicu mengembalikan tataan hasil. Pemicu yang mengembalikan tataan hasil dapat menyebabkan perilaku tak terduga dalam aplikasi yang tidak dirancang untuk bekerja dengannya.

Penting

Kemampuan untuk mengembalikan tataan hasil dari pemicu akan dihapus dalam versi SQL Server yang akan datang. Hindari mengembalikan tataan hasil dari pemicu dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini melakukan ini. Untuk mencegah pemicu mengembalikan tataan hasil, ubah opsi larang hasil dari pemicu menjadi nilai 1. Pengaturan default untuk opsi larang hasil dari pemicu akan diatur ke 1 dalam versi SQL Server yang akan datang.

Saat diatur ke 1, opsi larang hasil dari pemicu diatur ke ON. Pengaturan default untuk opsi ini adalah 0 (OFF). Jika opsi ini diatur ke 1 (ON), upaya apa pun oleh pemicu untuk mengembalikan kumpulan hasil gagal, dan pengguna menerima pesan kesalahan berikut:

Msg 524, Level 16, State 1, Procedure <Procedure Name>, Line <Line#>

A trigger returned a resultset and the server option 'disallow_results_from_triggers' is true.

Opsi larang hasil dari pemicu diterapkan pada tingkat instans SQL Server, dan menentukan perilaku untuk semua pemicu yang ada dalam instans.

Opsi larang hasil dari pemicu adalah opsi lanjutan. Jika Anda menggunakan sp_configure prosedur tersimpan sistem untuk mengubah pengaturan, Anda dapat mengubah hasil yang tidak diizinkan dari pemicu hanya saat menampilkan opsi tingkat lanjut diatur ke 1. Pengaturan segera berlaku tanpa menghidupkan ulang server.

Anda dapat memeriksa apakah opsi diatur dengan benar menggunakan kode Transact-SQL berikut:

-- Check the current value for the option
SELECT [name], value_in_use
FROM sys.configurations
WHERE [name] LIKE 'disallow results from triggers';

-- Set the disallow results from triggers option to 1. This is an advanced option so that must be enabled first
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO

-- Set the disallow results from triggers option
EXEC sp_configure 'disallow results from triggers', 1;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE
GO

-- Validate that the option is set to 1
SELECT [name], value_in_use
FROM sys.configurations
WHERE [name] LIKE 'disallow results from triggers';
GO

Lihat juga