日期:2014-05-19  浏览次数:21117 次

求助--使用DataAdapter更新数据源时失败。
private   void   SaveChange()
                {
                        this.Validate();
                        this.gagesBindingSource.EndEdit();
                        gagesTableAdapter.Update(this   .gMS_NEWDataSet   .Gages   );
                }
我是使用SQL   2000来存储数据的,数据表中存有ntext与image类型的字段,但当在.net中调用以上的一个函数来向数据源插入一行时出现以下的错误提示:

“查询处理器未能用优化程序生成查询计划,因为查询无法同时更新聚集键和   text、ntext   或   image   列。”

请问这是什么原因呢,有什么办法可以解决??或者这涉及到SQL什么方面的知识呢?麻烦提点一下,我可以自己去查帮助文档的。

------解决方案--------------------
表里是否有多个索引,考虑在索引管理里面取消聚集索引
------解决方案--------------------
参考一下邹老大的例子
use tempdb
go
create table tb(id int primary key clustered,a text,b nvarchar(100),c ntext,d image)
insert tb select id,name=max(name),max(name),max(name),cast(max(name) as varbinary) from sysobjects group by id
go

update tb set id=-10000,a= 'b ',b= 'c ',c= 'd ',d=0x
where id=1
go
drop table tb

------解决方案--------------------
image字段要以流的形式存储进数据
以前也见过类似的问题,因为sqlserver2000也在这方面(结果集冗余)存在这一定的问题,你先打下sp4的补丁,在看看结果

http://support.microsoft.com/kb/841404/zh-cn