今天,公司某支持部门打电话,说其内部办公系统出错,我看了下错误,是数据库改版,没有在库中相应的表添加字段.看来,找到问题,我就马上在表中添加了这个字段,可过会,那位同事又打电话来说,还是有错误,不能访问那个页面.这下,只能,在本地跟下程序了,运行vs2003(没办法,公司前期开发的办公系统用的是2003,在本地架好环境),设置断点,(我追,追...,我要做个追风少年...,插序,呵...),找到那条sql语句,select * from 视图名称 where id=XXX,马上找到这个视图,看其sql脚本,脚本中对我刚才修改的表的字段是全部引用,即用的是 " 表名.* ",没有问题啊,试图想添加表名.新字段,提示说,字段必须唯一,不能同时出现多次,也就是说"表名.*"已经有这个字段在内了啊,那程序为什么都是提示这个字段没有引用呢.在网上查之(感谢baidu),找到"在SqlServer2000的视图中小心使用*符号 "这篇文章,看了后,问题马上解决.
在此,我写这个主要是说,强烈建议大家不要用"*"号,在select语句中把用的的字段名写出来,这样,就不用出现问题,不能及时解决.
备注:
我在查询器中运行 exec sp_refreshview '视图名称' 一切就ok了.