求一批量更新的sql语句
一页列出N个产品,每条产品记录中价格是显示在文本框里面,每条产品记录前有一个复选框。用户可以勾选某些产品,然后在对应的文本框里更改这些产品价格数字,点击“更新价格”按钮提交后,勾选的产品价格一次性全部更改完毕。
产品表名是production,价格字段是price,产品用id区分,请教了。
问题点数:0、回复次数:7Top
1 楼jadeluo(秀峰)回复于 2005-06-01 17:38:17 得分 0
不可能一次性全部更新的, 只能是通过执行n次Update语句来完成所有的更新。Top
2 楼tywong(别人的天长地久)回复于 2005-06-01 18:26:23 得分 0
可以用事务控制多个update语句更新,这样就能保证同时更新成功或者都失败Top
3 楼wljin(衣冠清瘦)回复于 2005-06-01 21:16:35 得分 0
写个存储过程,用游标就可以实现
如:
DECLARE @ID
DECLARE TEMP CURSOR FOR SELECT 产品代号 FROM 产品 WHERE 条件 IN(。。。(所有被选择的记录查询字段列表))
OPEN TEMP
WHILE @@FETCH_STATUS=0
BEGIN
FETCH NEXT FROM TEMP INTO @ID
UPDATE 产品 SET 价格=??? WHERE 产品代号=@ID
END
CLOSE TEMP
DEALLOCATE TEMPTop
4 楼ok61()回复于 2005-06-02 08:52:20 得分 0
有位朋友提出了一个简单的方法,基本可用,只是Request.Form("Price" & mm)取不出用户填写的价格,我把修改过的代码贴出来看看有什么问题:
HTML
<input type=checkbox name="mm" value=<%=rsgrid("id")%>>
<input type=input name="price" value=<%=rsgrid("price")%>>
=========================================================================
ASP
arrProdID = Split(Request.Form("mm"), ",")
mm=Request.Form("mm"),
For Each mm in arrProdID
strSQL = "Update production set price = '" & Request.Form("Price" & mm) & "' Where id = '" & mm & "'"
conn.execute strSQL
Next
Top
5 楼ok61()回复于 2005-06-02 14:21:44 得分 0
有朋友知道问题在哪里吗?Top
6 楼xr105(飞花逐月)回复于 2005-06-02 14:58:38 得分 0
我不太清楚,不过根据你所说的就像可以用
CASE
WHEN ff='1' THEN '返加值1'
ELSE '睡觉了'
END A
应该可以解决的.Top
7 楼ok61()回复于 2005-06-02 15:55:22 得分 0
倒~~ 我真的要先睡了。。。哈哈Top




