这个问题以前就遇到过,后来印象中好象是重装了SQL就解决了,今天又遇到了同样的问题,在修改SQL 2000已有的视图时,以前用的好好的视图一用企业管理器修改,所有select中列出的列名就被自动修改为Expr1,Expr2等等,补丁打到sp4也没用。
今天又在网上查找了一下,才知道是microsoft的BUG,在sql 7和sql 2000中全都存在
症状:
当从 SQL Server 企业管理器 (SEM) 设计视图工具创建视图,T-SQL 语法将显示正常。 但是,如果视图保存,在关闭设计视图,并设计视图重新打开要检查视图然后,语法将可能会更改。
SQL Server 2000 和 SQL Server 7.0 中, 出现此问题,尽管到 T-SQL 更改是两个版本之间稍有不同。 此行为是仅存在一个很少和唯一的组的情况。 请参阅在"更多信息"部分,了解进一步的详细信息,请。
当您右键单击视图,然后选择 属性 ,视图的语法显示正常 ; 它将可以运行在查询分析器 (QA),并将每次返回正确的结果。 但是,更改的语法,从设计视图不会返回正确的结果。
原因:
此问题已与为外部联接 ; 而不是它是由于到 autoaliasing 时在这些特定的情况下应该不会发生。 在结果是未绑定的列创建的获取重新绑定到错误的表。
替代方法:
使用设计视图创建视图后,避免编辑,然后 resaving 使用设计视图工具在 SQL 企业管理器视图。 使用查询分析器和 T-SQL 而编码。
Microsoft 已经确认这是 SQL Server 7.0 中的问题。
Microsoft 已经确认这是 SQL Server 2000 中的一个问题。
.....
这些都是机器翻译的结果,还是看看micorosft原文链接吧
查看microsoft给出的原文: