【问题标题】:SQL Server stored prcedure definition is different with sys_modules.definitionSQL Server 存储过程定义与 sys modules.definition 不同
【发布时间】:2018-04-17 18:06:02
【问题描述】:

我有 10 个存储过程,它们与 sys_modules 中的定义不同。我用这个查询找到它们:

select 
    b.definition, a.name 
from 
    sysObjects a 
left outer join 
    sys.sys_modules b on b.id = a.object_id 
where 
    b.definition not like '%' + b.name + '%'

有人能告诉我为什么会这样吗?

这是我第二次遇到这个问题。

【问题讨论】:

    标签: sql-server stored-procedures module sys sysobjects


    【解决方案1】:

    使用 INFORMATION_SCHEMA.ROUTINES 并获取存储过程的 ROUTINE_DEFINITION 列

    【讨论】:

      【解决方案2】:

      如果您使用 sp_rename 并显式调用 in the documentation,则会发生这种情况

      重命名存储过程、函数、视图或触发器不会 更改定义中对应对象名称的名称 sys.sql_modules 目录视图的列。因此,我们推荐 即 sp_rename 不能用于重命名这些对象类型。相反,放下 并使用新名称重新创建对象。

      请注意,SSMS 对象资源管理器中的重命名功能实际上会调用此过程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多