Sql server 在SQL server中查询服务器级触发器定义

Sql server 在SQL server中查询服务器级触发器定义,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我试图查询服务器级触发器的定义文本。更具体地说,尝试从用户定义的存储过程中查询定义。因为触发器保存在服务器级别,所以常规方法似乎不起作用 我尝试过的: (一) sp_helptext:范围错误,我收到消息: Msg 15009,16级,状态1,程序sp_帮助文本,第54行 数据库“master”中不存在对象“myTrigger”,或者该对象对此操作无效 2) 选择OBJECT\u DEFINITION(OBJECT\u ID(N'myTrigger))作为ObjectDefinition: 这

我试图查询服务器级触发器的定义文本。更具体地说,尝试从用户定义的存储过程中查询定义。因为触发器保存在服务器级别,所以常规方法似乎不起作用

我尝试过的:

(一)
sp_helptext
:范围错误,我收到消息:

Msg 15009,16级,状态1,程序sp_帮助文本,第54行 数据库“master”中不存在对象“myTrigger”,或者该对象对此操作无效


2)
选择OBJECT\u DEFINITION(OBJECT\u ID(N'myTrigger))作为ObjectDefinition

这将返回
NULL
。我用
sys.server\u triggers
中的对象id替换了“myTrigger”。这也会返回
NULL


(三)

该对象在
sys.sql\u模块中不存在

SELECT ssmod.definition AS [Definition]
FROM master.sys.server_triggers AS tr
LEFT OUTER JOIN master.sys.server_assembly_modules AS mod ON mod.object_id = tr.object_id
LEFT OUTER JOIN sys.server_sql_modules AS ssmod ON ssmod.object_id = tr.object_id
WHERE (tr.parent_class = 100) and (tr.name = 'MyTriggerName')
SELECT ssmod.definition AS [Definition]
FROM master.sys.server_triggers AS tr
LEFT OUTER JOIN master.sys.server_assembly_modules AS mod ON mod.object_id = tr.object_id
LEFT OUTER JOIN sys.server_sql_modules AS ssmod ON ssmod.object_id = tr.object_id
WHERE (tr.parent_class = 100) and (tr.name = 'MyTriggerName')