Sqlserver2000升级到2005后的查询问题 100jiangchuandong]

发布时间:2017-2-21 13:15:00 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Sqlserver2000升级到2005后的查询问题 100jiangchuandong]",主要涉及到Sqlserver2000升级到2005后的查询问题 100jiangchuandong]方面的内容,对于Sqlserver2000升级到2005后的查询问题 100jiangchuandong]感兴趣的同学可以参考一下。

升级后,asp.net连接2005的数据库查询有的就报 操作失败! Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.!  有的没有,不太清楚该怎么修改. sql查询语句是 use master select distinct s.cust_no,s.copy_cust_no as nvrFinalCust,s.copy_cust_name,s.copy_cust_po,s.po_no, convert(nvarchar,s.shipment,111) as shipment,p.pn_no,p.part_no,p.pn_refno,p.qty as pnqty,p.nvrFunctionNo, convert(nvarchar,p.date,111) as date,p.des_2,wip.nvrStkNo,wip.qty,p.unit,wip.intPrint  from DC_CECCS..pn_h p   inner join (select nvrStkNo,pn_no,sum(numQty) as qty,lot_no,intPrint  from DC_CECCS..wipfgnote  where wipdate between '2006/11/18' and '2006/12/19' group by nvrStkNo,pn_no,lot_no,intPrint) wip  ON p.pn_no=wip.pn_no inner join DC_CECCS..s_orderh s ON p.po_no=s.po_no WHERE wip.lot_no=''  AND p.nvrFunctionNo='fn1013000000' and wip.intPrint>0 order by pn_no ASC

是不是升级的不是很完全。

有数据违反了非空约束,唯一约束,外键约束

查询怎么会违反约束?  楼主应该是帖错了语句吧?

不是,确实是sqlserver2005存在的兼容性bug sql语句修改为 select distinct s.cust_no,s.copy_cust_no as nvrFinalCust,s.copy_cust_name,s.copy_cust_po, s.po_no, convert(nvarchar,s.shipment,111) as shipment,p.pn_no,p.part_no,p.pn_refno,p.qty as pnqty,p.nvrFunctionNo, convert(nvarchar,p.date,111) as date,p.des_2,wip.nvrStkNo,wip.qty,p.unit,wip.intPrint  from DC_CECCS..pn_h p   inner join (select nvrStkNo,pn_no,sum(numQty) as qty,lot_no,intPrint  from DC_CECCS..wipfgnote  where wipdate between '2006/11/18' and '2006/12/19' group by nvrStkNo,pn_no,lot_no,intPrint) wip  ON p.pn_no=wip.pn_no inner join DC_CECCS..s_orderh s ON p.po_no=s.po_no WHERE wip.lot_no=''  AND p.nvrFunctionNo='fn1013000000' and wip.intPrint>0 order by pn_no ASC  就没有问题了 我再 select po_no, count(*) from  pn_h group by po_no order by count(*) 发现 po_no 查询出来的数据不惟一

sql server应该不会因为你的查询触发约束检查。怀疑你的asp.net中使用的ado.net中参数设置的有问题。你可以在sql server中执行你的这段SQL,看看有没有这个错误提示。 如果sql server中不出错,可以参考: https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1012188&SiteID=1

sqlserver 执行确实没有问题的,但是在页面会出错

sqlserver 执行确实没有问题的,但是在页面会出错 应该检查你的调用

我在google上找的 http://weblogs.asp.net/rosherove/archive/2004/10/03/237260.aspx Wednesday, November 22, 2006 11:24 AM by Matt C  # re: DataSet hell - "Failed to enable constraints. One or more rows contain values...."  I had this problem in ASP.Net 2.0 when I had a dataset table containing BIT fields which allowed NULL values.  The table being returned (single record) contained a NULL value in one of my BIT fields.  The dataset (at least in 2.0) allows you to return "Empty" instead of NULL for string fields ONLY (this is under properties of each individual field in the dataset diagram).  For other field types, the only value it allows is "Throw Exception". Great(!) Solved it for this one record by going into the table and replacing the NULL with False, manually. Longer term, if this is the reason for the error, this can be fixed by ensuring that NULL values are not permitted in your table, and instead setting a default value of (1) or (0) (i.e. true or false) in your BIT field. That's what I did and the problem has gone away :-) 看上去是安装sqlserver2005后,同时安装了asp.net框架2.0引起的原因

The same issue came up only when we upgrade the db to SQL Server 2005 for 2000, while the middle tier is always using .NET 2.0.  As an example, one of the problematic sproc uspGetOrderItem is like:  Select o.orderid, i.ItemName, i.Qty  From order o join orderitem i on o.orderid = i.orderid.  I replaced o.orderid in the select list with i.orderid. NO other code change at middle tier, and it worked! I feel lucky, but I cannot think of any reason why it worked on SQL Server 2000 but not on SQL Server 2005. Can someone help? 

sqlserver2005基于.netframework2.0这是毫无疑问的,无论是演示版还是正式版,都需要安装。但是如果是数据库环境和iis服务器不在一台机器环境下,应该是可以避免出现这种问题的。所以说升级库导致这种问题可能性不大,升级了iis的.netframework才是关键! 值得怀疑的是你使用的adonet组件中,如:dataset,datatable,datareader等这些数据结构中是否有模拟数据库表特性的默认属性,如果有的话完全有可能会对你查询的数据进行结构化检查,或者预先检查。你应该找到你出现select问题的程序段,看看你用了哪些adonet组件,这些组件是否有这些默认属性。如我给你的连接中就提到了dataset的某个默认属性! 你可以注意一下,出现这种问题的贴子一般都是net2.0出现以后,找找微软.net方面的bug报告,看看有没有收获,但是个人感觉如果是属性默认值的问题,应该不能算bug,而就是告诉使用者不能这么用! 说了好多,最后一句:搞.net我不专业呀! :)

呵呵,版主确实热心,赞一个! 可惜我在msdn上找过后,都没有合适的解决方案

看来我要debug下写sql连接类了

呵呵呵,Asp.Net 2.0的补丁,赶快打上吧,不久之前才出来的

上一篇:微软受害于Vista对SQL Server的支持 50yanglilibaobao]
下一篇:急!数据库连接 10wzl_1008]

相关文章

相关评论