数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SQLServer 2000 中视图的一个 bug

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

昨天(零点过了哟),在苏州中部电子有限公司生产受发注在库管理系统中遇到一个奇怪的问题。
前些天我测试得好好的程序,昨天给测试人员测试后得出了莫名其妙的错误,今天bug报告拿来了,我就陷入了奇怪的圈套中,因为我们的项目中用了大量的视图,当然这个错误就出在视图上。就是在视图中的那个“*”,哈哈。

测试环境:
OS: Windows Server 2000/2003
Microsoft SQLServer: 2000 简体中文企业版

测试步骤(演示):
第一步、让我们新建一个数据库吧,数据库名字就叫“test”吧,其他选项都选默认:


第二步、在test数据库中创建一个表“t1”:
它有三个字段,顺序分别为c1,c2,c3,数据类型无所谓


第三步、在test数据库中创建一个视图“v1”(不管多么复杂都行,不过注意的是你要用*,而不要一项一项地列出来,因为*才会导致下面的错误发生哟


第四步、在表“t1”中添加一列“t4”,让这一列介于“c2”和“c3”之间


第五步、在表“t1”中插入一条数据:


第六步、打开视图“v1”去看看去(嘿,你看到什么了?):

再打开表“t1”看看(哈哈,好玩吧):



第七步、把视图“v1”的打开设计视图重新执行一下设计(或者重新执行一下那个修改视图的语句),它就正常了。

所以,我们在视图中尽量不要使用*呀,嘿嘿,要是用了*的话,你要是改了表结构之后,你就别忘了把相关视图更新一下设计,呵呵。


相关文章

相关软件