Ale*_*eix 4 sql-server sql-server-2016
我运行了以下查询
SELECT sm.object_id,
v1.object_name,
o.type,
o.type_desc,
sm.definition
FROM sys.sql_modules sm
CROSS APPLY (VALUES (OBJECT_NAME(sm.object_id))) v1 (object_name)
JOIN sys.objects o ON sm.object_id = o.object_id;
Run Code Online (Sandbox Code Playgroud)
object_name并且和之间存在错误关系的三个对象definition。名称和它引用的定义之间不匹配、不对应。
看起来这个表没有跟踪这三个对象的名称和定义的删除或更改。
这种情况怎么能给出呢?我如何“更新”此表或正确修复此问题?
这是使用“sp_rename”的副作用。
这些对象可以正常工作,但要刷新它们的定义,您需要重新创建它们。
来自sp_rename文档:
重命名存储过程、函数、视图或触发器不会更改 sys.sql_modules 目录视图的定义列中或使用 OBJECT_DEFINITION 内置函数获取的相应对象的名称。因此,我们建议不要使用 sp_rename 来重命名这些对象类型。相反,删除并使用新名称重新创建对象。
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |