类型:转载 责任编辑: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
网友回答:
--如果还是不行,可以通过强制修改系统表来实现
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