Pokud dáváte přednost správě databází SQL Server spouštěním dotazů T-SQL namísto použití GUI, zde jsou dvě možnosti pro výpis všech spouštěčů v aktuální databázi.
Možnost 1 – Zobrazení katalogu sys.triggers
Můžete použít sys.triggers
zobrazení systémového katalogu, abyste získali seznam všech spouštěčů v databázi.
USE Test; SELECT name, OBJECT_NAME(parent_id) AS parent, type, type_desc FROM sys.triggers;
Výsledek:
+-------------------+----------+--------+-------------+ | name | parent | type | type_desc | |-------------------+----------+--------+-------------| | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | t6ins | t6 | TR | SQL_TRIGGER | +-------------------+----------+--------+-------------+
Toto zobrazení vrátí všechny spouštěče s typem TR (spouštěč SQL DML) nebo TA (spouštěč DML sestavení (CLR)). Vrací názvy spouštěčů DML i názvy spouštěčů DDL (na rozdíl od další možnosti, která vrací pouze spouštěče DML).
Možnost 2 – Zobrazení katalogu sys.objects
Můžete také použít sys.objects
zobrazení systémového katalogu pro získání seznamu spouštěčů.
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');
Výsledek:
+----------+-------------------+----------+--------+-------------+ | schema | name | parent | type | type_desc | |----------+-------------------+----------+--------+-------------| | dbo | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | dbo | t6ins | t6 | TR | SQL_TRIGGER | +----------+-------------------+----------+--------+-------------+
Všimněte si, že sys.objects
uvádí pouze spouštěče DML, nikoli spouštěče DDL.
Důvodem je sys.objects
vrací pouze objekty v rozsahu schématu. Názvy spouštěčů DML jsou vymezeny podle schématu, ale názvy spouštěčů DDL jsou vymezeny nadřazenou entitou. Pokud potřebujete vrátit spouštěče DDL, použijte sys.triggers
.