Jika Anda lebih suka mengelola database SQL Server dengan menjalankan kueri T-SQL, daripada menggunakan GUI, berikut adalah dua opsi untuk mencantumkan semua pemicu di database saat ini.
Opsi 1 – Tampilan Katalog sys.triggers
Anda dapat menggunakan sys.triggers
tampilan katalog sistem untuk mendapatkan daftar semua pemicu dalam database.
USE Test; SELECT name, OBJECT_NAME(parent_id) AS parent, type, type_desc FROM sys.triggers;
Hasil:
+-------------------+----------+--------+-------------+ | name | parent | type | type_desc | |-------------------+----------+--------+-------------| | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | t6ins | t6 | TR | SQL_TRIGGER | +-------------------+----------+--------+-------------+
Tampilan ini mengembalikan semua pemicu dengan tipe TR (SQL DML trigger) atau TA (Assembly (CLR) DML trigger). Ini mengembalikan nama pemicu DML dan nama pemicu DDL (tidak seperti opsi berikutnya, yang hanya mengembalikan pemicu DML).
Opsi 2 – Tampilan Katalog sys.objects
Anda juga dapat menggunakan sys.objects
tampilan katalog sistem untuk mendapatkan daftar pemicu.
USE Test; SELECT SCHEMA_NAME(schema_id) AS [schema], name, OBJECT_NAME(parent_object_id) AS parent, type, type_desc FROM sys.objects WHERE type IN ('TR', 'TA');
Hasil:
+----------+-------------------+----------+--------+-------------+ | schema | name | parent | type | type_desc | |----------+-------------------+----------+--------+-------------| | dbo | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | dbo | t6ins | t6 | TR | SQL_TRIGGER | +----------+-------------------+----------+--------+-------------+
Perhatikan bahwa sys.objects
hanya mencantumkan pemicu DML dan bukan pemicu DDL.
Ini karena sys.objects
hanya mengembalikan objek cakupan skema. Nama pemicu DML tercakup dalam skema tetapi nama pemicu DDL dicakup oleh entitas induk. Jika Anda perlu mengembalikan pemicu DDL, gunakan sys.triggers
.