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

2 Cara Mengembalikan Daftar Pemicu di Database SQL Server menggunakan T-SQL

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menggabungkan String di SQL Server dengan CONCAT()

  2. Bagaimana cara membuat Tabel Tertaut ODBC secara terprogram ke Tampilan SQL Server dan membuatnya dapat diedit?

  3. Parameter Sniffing (atau Spoofing) di SQL Server

  4. Apa cara terbaik untuk memilih nilai minimum dari beberapa kolom?

  5. Buat Database SQL Server dengan Azure Data Studio