SQL 2000 bug:在企业管理器中修改现有视图时,会自动将列名修改为Expr1,Expr2等
2009-05-07 13:18
316 查看
这个问题以前就遇到过,后来印象中好象是重装了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给出的原文:
http://support.microsoft.com/kb/288527/zh-cn 机器翻译的中文
http://support.microsoft.com/kb/288527/en-us/ 英文原文
SELECT dbo.paper.*, dbo.prj.prjname AS Expr1, dbo.prj.prjtype AS Expr2, dbo.users.username AS Expr3, dbo.users.fullname AS Expr4, dbo.rsda.sn AS Expr5 FROM dbo.paper LEFT OUTER JOIN dbo.papertype ON dbo.paper.systype = dbo.papertype.sys LEFT OUTER JOIN dbo.rsda ON dbo.paper.pid = dbo.rsda.PID LEFT OUTER JOIN dbo.users ON dbo.paper.userid = dbo.users.userID LEFT OUTER JOIN dbo.prj ON dbo.paper.prjid = dbo.prj.prjid
今天又在网上查找了一下,才知道是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给出的原文:
http://support.microsoft.com/kb/288527/zh-cn 机器翻译的中文
http://support.microsoft.com/kb/288527/en-us/ 英文原文
相关文章推荐
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- 卸载sql 2005后,打开sql 2000企业管理器 提示sql mmc无法创建管理单元
- 用SQL 企业管理器智能生成单表的 添加、删除、修改存储过程
- Android圆盘菜单(修改了网络上现有的demo总是显示第一个的bug,以及增加了点击事件)
- Sql视图创建语句及修改视图
- sql语句查询数据库中的表名/列名/主键/自动增长值
- SQL 2000和SQL 2005服务端口查看或修改
- sqlserver 修改列名及表名的sql语句
- 【转】sqlserver修改列名及表名的sql语句
- SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、修改)
- ms 的FOR SQL 2000的JDBC的BUG
- sql语句查询数据库中的表名/列名/主键/自动增长值
- 利用 Oracle EM 企业管理器 进行oracle SQL的优化(自动生成索引)
- sql 2000修改(包括清空)sa密码的方法
- 【view】修改现有的视图
- sql 2000 分布式分区视图的创建步骤
- sql 修改表结构 视图如何更新
- MS SQL SERVER 2000不能进行自动备份的原因分析
- Oracle:SQL语句--对表的操作——修改列名(即修改字段名)
- Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等