我在SQL服务器上遇到了一个奇怪的问题。我在db中有一个名为“SPH_F2V_VEB_FIN-04-GLA-07 - 反转和取消GL过帐”的视图,但是当运行以下查询时,我得到了一个名称已更改的定义。
SELECT object_definition (OBJECT_ID(N'dbo.SPH_F2V_VEB_FIN-04-GLA-07 - Reversed and Cancelled GL Postings'))
输出:
CREATE VIEW [dbo].[SPH_F2V_VEB_FIN-04-GLA-07 - Reversed & Cancelled GL Postings] AS
SELECT
--GL1.[Business Unit],
GL1.[Company Code],
GL1.Description,
....
如果您注意到,名称更改为“SPH_F2V_VEB_FIN-04-GLA-07 - 已撤消和已取消的GL过帐”,将“和”更改为“&”。起初它似乎是一个sql转换问题或与“和”相关的东西,但我尝试了几个视图“和”和“&”,他们似乎按预期工作。
那么,这可能会发生什么?我甚至对DB如何允许这一点持怀疑态度。任何想法都会深深感激!!
答案 0 :(得分:5)
如果您使用sp_rename
重命名视图,则会发生这种情况。
最好删除并创建它以重命名它。
重命名存储过程,函数,视图或触发器不会 更改定义中相应对象名称的名称 sys.sql_modules目录视图的列。因此,我们建议 sp_rename不能用于重命名这些对象类型。相反,放弃 并使用新名称重新创建对象。