SQL Server存储过程定义与sys_modules.definition不同



我有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 + '%'

有人能告诉我为什么会发生这种事吗?

这是我第二次面对这个问题。

如果使用sp_rename并在文档中明确调用,就会发生这种情况

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

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

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

最新更新