请教个sql问题

huojianmac 2010-10-12 05:48:53
Conn.Execute("UPDATE Company SET Money=Money+"&commy&" Where ID in ("&checkpostup&")")
或者用for循环ID的形式
为什么Money变成commy的两倍了
比如Money原来是50 commy=10 执行一次应该是60 可怎么变成70了啊
郁闷啊 请大虾们赐教
...全文
183 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
abuying 2010-10-13
  • 打赏
  • 举报
回复
Conn.Execute("UPDATE Company SET Money=Money+"&commy&" Where ID in ("&checkpostup&")")

就里应该执行两次吧!
主要因为in checkpostup应该是两个值吧,如果三个值 ,可能就加+30,
LZ检查一下程序!
viqn7qdnt 2010-10-12
  • 打赏
  • 举报
回复
给个固定值试验下吧,还是有问题,就是多执行了一次,SQL语句没问题
王向飞 2010-10-12
  • 打赏
  • 举报
回复
那就是你的程序执行了两次,你可以用事件探查器看一下执行过哪些脚本,
或建议你给你的表增加一个更新时间字段,在更新的时候,把更新时间也更新,默认修改为getdate()
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
感觉还是你传值的时候commy的值就已经变了。
还是debug一下程序,看看在哪边修改了commy的值,sql应该这边没问题。
软件钢琴师 2010-10-12
  • 打赏
  • 举报
回复
Conn.Execute("UPDATE Company SET Money="&commy&" Where ID in ("&checkpostup&")")
你这么 看看 结果 是多少
viqn7qdnt 2010-10-12
  • 打赏
  • 举报
回复
多执行了一次吧,语句上应该没错误的
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
测试没发现问题
create table #p
(
id int,
Money int
)
insert into #p select 1,50

select * from #p

id Money
----------- -----------
1 50

(1 row(s) affected)

UPDATE #p SET Money=Money+10
Where ID in (1)

select * from #p

id Money
----------- -----------
1 60

(1 row(s) affected)
huojianmac 2010-10-12
  • 打赏
  • 举报
回复
打印出SQL 是对的 在查询分析器执行都是对的 郁闷啊
王向飞 2010-10-12
  • 打赏
  • 举报
回复
跟踪一下SQL,打印出SQL 看看你的语句是啥?
jstoic 2010-10-12
  • 打赏
  • 举报
回复
你要就爱农场一下,你程序里面是不是执行了两次。

跟踪一下执行过程

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧