php sqlsrv 执行update很诡异,受影响行数有返回,数据无变化

update表Aset字段A='0'where字段A='1'and字段B=‘001’update表Aset字段A='0'where字段A='1'and字段B=‘002’同... update 表A set 字段A = '0' where 字段A = '1' and 字段B=‘001’
update 表A set 字段A = '0' where 字段A = '1' and 字段B=‘002’
同样条件,dml语句变成dql语句都有返回值。
直接从sql server中执行这两个语句都正常,但是放到php中执行,第一个语句有返回受影响行,并且数据库中数据有变化,但第二个语句有返回受影响行,但是实际数据库中数据无变化。
第二句语句应该受影响行比如是1000行,但是php返回的受影响行值可能只有600,而且数据库中数据完全没有变化。
求解啊
哦对
执行语句用的php函数是$res=sqlsrv_query($this->conn,$sql);
查看返回行数用的函数是sqlsrv_rows_affected($res);
展开
 我来答
小猪米霍克
2014-05-23
知道答主
回答量:17
采纳率:0%
帮助的人:7万
展开全部
1.最大执行时间问题,解决方法:分批处理逻辑,比如用ID大小分批处理
2.多字段组合不可重复的设定,解决方法:查看表设计结构,看看有没有此项设定
3.去掉执行语句1,只运行语句2.
不能解决问题可联系我
追问
这两个语句不是同时执行的,每次只执行一个语句,而且执行语句一的受影响行返回值大于语句二。
~(/ □ \)~

其实还有个日期限制条件,我把出问题的记录对应的日期改早一些就能成功了。
出问题的时候,执行的影响行数完全不是最大的呀。说的有点乱,方便的话QQ一下可以么。
追答
381549518
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式