关于bit字段在SQL Server 和 Adaptive Server Anywhere中不同的处理方式而引起的问题

小弟用powerdesigner做了一个数据库模型,该数据库的一些表使用了主外键关联,我用其生成了一个SQL Server2000的数据库,用SQL Server2000操作起来也很正常,可是如果用PB的Adaptive Server Anywhere操作该数据库的时候,就会有一个表(而且就只这一个表)不能更新,只要更新,就会提示出错。错误信息如下:

Row changed between retrieve and update.

No changes made to database.

我又回到SQL Server中操作,又一切正常。在别的机子上也会出现同样的情况。我百思不得其解,当然我也试了一些方法,。又比如把这个表删成仅有4个字段,这时就不会出错了。难道国庆长假要陷入这不可名状的迷惘之中吗?
---------------------------------------------------------------

出错的表是否有约束,可能SQL Server和AnyWhere 在检查约束时不同
是不是用Anywhere跟新时,约束通不过呀

---------------------------------------------------------------
的确是这样,出错的表中有类型为bit字段的列,在SQL Server中bit列是可以为空的,但是在anywhere中bit列却不可以为空,而我在更新数据时恰恰忽略了这个bit列,所以总是出错。这种问题怪的真蹊跷啊,希望能给大家提个醒!

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus