Foxtable(狐表)用户栏目专家坐堂 → [求助]UPDATE语句请教


  共有9247人关注过本帖树形打印复制链接

主题:[求助]UPDATE语句请教

帅哥哟,离线,有人找我吗?
blueskyyq
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
[求助]UPDATE语句请教  发帖心情 Post By:2012/12/8 1:01:00 [只看该作者]

UPDATE {任务表}  set  责任人 = '张三' Where 责任人 Is Null,这一句执行正确

但我只要UPDATE部分符合条件的行,比如说前100条,这个TOP 100怎么加上去才有效呢

请教各位高手


 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/12/8 9:07:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/8 9:24:00 [只看该作者]

 如果是Access的话,要分几步走。
 查出第100行的sortkey值,然后写。
 UPDATE {任务表} set 责任人 = '张三' Where 责任人 Is Null and _Sortkey <= 查出的值

 如果是sqlserver就简单一点。
 
update temp set 责任人 = '张三' From (select Top 100 * from {xxx} where 责任人 is null order by _sortkey) as temp

 回到顶部
帅哥哟,离线,有人找我吗?
blueskyyq
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
  发帖心情 Post By:2012/12/8 11:27:00 [只看该作者]

谢谢二位

 回到顶部
帅哥哟,离线,有人找我吗?
blueskyyq
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
  发帖心情 Post By:2012/12/8 13:02:00 [只看该作者]

还是搞不定,大家再帮忙看下

我用的是Access数据源,怎样用SQL语句查出第100行的sortkey值(我用的是分页加载,只能用后台SQL语句)


 回到顶部
帅哥哟,离线,有人找我吗?
blueskyyq
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
  发帖心情 Post By:2012/12/8 13:20:00 [只看该作者]

请教各位高手,实现一楼想法用SQL语句怎么写(Access数据源,要进行操作的数据大部分是还没有加载的)

 回到顶部
帅哥哟,离线,有人找我吗?
blueskyyq
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
  发帖心情 Post By:2012/12/8 13:37:00 [只看该作者]

dim dt as datatable

cmd.CommandText = select top 100  From {任务表}  Where 责任人 Is Null

dt = cmd.ExecuteReader

for each dr as datarow in dt

dr("责任人") = “张三"

next

想了一下,可心按上面语句,但怎么写回去呢?


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/8 13:40:00 [只看该作者]

这样去获取。

Dim cmd As New SQLCommand
cmd.Co nnectio nName = "sss"
cmd.CommandText = "Select Top 100 _Sortkey From {任务表} Where 责任人 Is Null Order By _Sortkey"
Dim dt As DataTable = cmd.ExecuteReader()
sortkey = dt.DataRow(99)("_Sortkey")

msgbox(sortkey)
[此贴子已经被作者于2012-12-8 13:44:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
blueskyyq
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:1856 威望:0 精华:1 注册:2012/7/9 23:25:00
  发帖心情 Post By:2012/12/8 13:47:00 [只看该作者]

小林,你那样我试过了,不行。返回的是 责任人 Is Null 中最大的_Sortkey ,不是想要的值

cmd.CommandText = "Select Top 100 Max([_Sortkey]) From {任务表} Where 责任人 Is Null Order By [_Sortkey]"   (特殊列名要加[])

这样写又提示出错


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/8 14:25:00 [只看该作者]

 Select Top 100 _Sortkey From {任务表} Where 责任人 Is Null Order By _Sortkey

返回的,是前100行的数据。

然后取得第100行的数据,这个不会是_Sortkey的最大。楼主你试试,不行的话,上传例子。

 回到顶部
总数 20 1 2 下一页