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')