资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

分区视图的更新碰到一个非常奇怪的问题

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

http://www.xmqhx.com/WriteView.rar  
  为方便大家解决这个问题,我将两个数据库文件分离出来,大家只要直接附加到你的服务器就可以了。  
  一个数据库在correct子目录下,一个在error子目录下。  
  附加后,correct子目录下的文件附加为yrPOS数据库。  
  error子目录下的文件附加为testXLJpso数据库。  
   
  这两个数据库的结构完全一样,至少我找不出不一样的地方。但是非常奇怪的就是,yrPOS数据库中的视图InOutMAdd可以增加修改数据;但是testXLJpso的视图InOutMAdd一增加数据就提示下面这个错误:  
  《UNION   ALL   视图InOutMAdd不可更新,因为没有找到分区列》  
   
  结构说明如下:  
  数据库中只有两个表:InOutM2003和InOutM2004,表中包含三个列:cIOGuid、iSubYear、cIONo,其中cIOGuid、iSubYear为主键;iSubYear为分区列,InOutM2003中的iSubYear限定为2003,InOutM2004中的iSubYear限定为2004。  
  包含了一个视图InOutMAdd,这个视图很简单,结构如下:  
  SELECT   *  
  FROM   InOutM2003  
  UNION   ALL  
  SELECT   *  
  FROM   InOutM2004  
  受InOutM2003,InOutM2004的限制,InOutMAdd中增加数据时iSubYear只能为2003或者2004  
   
  这个数据库是我做的一个系统经过大幅度简化后的咚咚,我花了两天的时间还是没搞明白怎么会有这种问题。  
   
  发现原因的朋友请告知songhy@china.com一声,不胜感激。  
   
  相关文件在此下载  
  http://www.xmqhx.com/WriteView.rar

网友回答:

发表者:zjcxc

--如果还是不行,可以通过强制修改系统表来实现  
   
  exec   SP_CONFIGURE   ALLOW   UPDATES,1   RECONFIGURE   WITH   OVERRIDE  
  go  
   
  update   sysobjects   set   status=6  
  where   xtype=C   and   parent_obj   in(object_id(InOutM2004),object_id(InOutM2003))  
  go  
   
  exec   SP_CONFIGURE   ALLOW   UPDATES,0   RECONFIGURE   WITH   OVERRIDE  
  go


 

 
热门推荐笔记本: 富士通笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved