Sql-Server
如何獲取數據庫觸發器的定義?
當我在我的一個數據庫中執行以下腳本時:
SELECT * FROM SYS.triggers
當我試圖了解sys.triggers
包含作為觸發器的每個對象的一行,類型為 TR 或 TA。DML 觸發器名稱是模式範圍的,因此在 sys.objects 中可見。DDL 觸發器名稱由父實體限定,並且僅在此視圖中可見。
那麼,如何獲取數據庫觸發器定義?
您可以使用
OBJECT_DEFINITION()
.文件中的無恥複製和粘貼範例:
以下範例在 Person 模式中返回使用者定義觸發器 uAddress 的定義。內置函式 OBJECT_ID 用於將觸發器的對象 ID 返回到 OBJECT_DEFINITION 語句。
USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition]; GO
怎麼樣
select m.definition from sys.triggers t inner join sys.objects o on t.object_id = o.object_id inner join sys.sql_modules m on m.object_id = o.object_id