SQL 2000 bug:在企业管理器中修改现有视图时,会自动将列名修改为Expr1,Expr2等
来源:互联网 发布:北京java专业培训 编辑:程序博客网 时间:2024/05/22 11:40
这个问题以前就遇到过,后来印象中好象是重装了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/ 英文原文
- SQL 2000 bug:在企业管理器中修改现有视图时,会自动将列名修改为Expr1,Expr2等
- ifnull( expr1, expr2)—用于sql查询中,如果查询字段值为null, 则显示expr2 ; 如果不为null,则显示expr1
- SQL2000 在企业管理器中如何修改非NULL值为NULL
- 在SQL中修改视图中的数据会受到哪些限制
- 在SQL中修改视图中的数据会受到哪些限制
- 在SQL中修改视图中的数据会受到哪些限制
- MySQL - DATEDIFF(expr1,expr2)
- NVL (expr1, expr2)
- NULLIF (expr1, expr2)
- MYSQL语句中 IF(expr1,expr2,expr3) 的 用法
- 【view】修改现有的视图
- maven:自动修改jdk为1.5bug
- oracle内置函数 NVL (expr1, expr2),NVL2 (expr1, expr2, expr3)
- 在运行时修改视图
- sql server企业管理器中设置数据为null
- SQL server修改主键为自动增长
- Sql注入bug修改
- MySQL函数if(expr1,expr2,expr3)
- .obj .lib .dll .exe的关系
- java强制类型转换
- Google中国地图API应用
- DB2联合数据库(Federated Database)配置实例
- abstract class和interface
- SQL 2000 bug:在企业管理器中修改现有视图时,会自动将列名修改为Expr1,Expr2等
- 使用 CONVERT:
- javabean的scope属性
- 编译多态和运行多态
- 事务(学习笔记)
- FLex调用servlet连接数据库
- Defining hashCode() and equals() effectively and correctly
- 在JBoss里配置MySql数据源
- 移动开发的战国时代