在SQL Server 2000中,在其中一个遗留系统上工作时,我运行了以下查询
SELECT * FROM INFORMATION_SCHEMA.VIEWS
where VIEW_DEFINITION LIKE '%XXXX%'
并获得了VIEW_DEFINITION ---> CREATE VIEW [dbo].[vw_ISLocation] AS ....
现在的问题是,数据库中没有该名称(vw_ISLocation
)的视图。具有相同TEXT的唯一视图具有不同的名称vw_Location
。
有谁知道这怎么可能?
答案 0 :(得分:1)
一种可能的解释是,该对象最初是使用名称vw_ISLocation
创建的,后来使用sp_rename
重命名。这是记录在案的行为(来自Books Online):
重命名存储过程,视图或触发器不会更改名称 syscomments表中相应的对象名称。这可能 导致生成对象的脚本作为旧名称的问题 将从syscomments表插入到CREATE语句中。 为获得最佳结果,请勿重命名这些对象类型。相反,放弃和 用新名称重新创建对象。
(INFORMATION_SCHEMA.VIEWS
中的定义基于与syscomments
)