SPWDD_LOAD_TO_DTeDinfo 接收3个参数(用户名ID,开始时间,结束时间,周编号)
功能是更新用户的业绩信息,该存储过程执行正确我有一张用户表,里面有100条数据,想实现100条数据进行更新,不想一条一条写,太麻烦了
这样写不行的,
exec SPWDD_LOAD_TO_DTeDinfo 
(select userID from UserInfo),
@begindate,
@enddate,
@weekid只想用存储过程完成,求高人解决下,怎么写才能实现该功能

解决方案 »

  1.   

    既然你要更新100条数据,何必不直接用update呢?
      

  2.   

    把SPWDD_LOAD_TO_DTeDinfo代码贴出来
      

  3.   

    declare @min_userid int
    select @min_userid=min(userid) from userinfo
    while @@rowcount>0
    begin
      exec SPWDD_LOAD_TO_DTeDinfo min_userID,@begindate,@enddate,@weekid
      select @min_userid=min(userid) from userinfo where userid>@min_userid
    end
      

  4.   

    userID不是int型,是varchar类型的,怎么办?游标怎么实现?
      

  5.   

    userid不是INT,那你就把这个变量定义成VARCHAR不就行了,对于字符串也可以用MIN()呀!declare @min_userid varchar(20)
    select @min_userid=min(userid) from userinfo
    while @@rowcount>0
    begin
      exec SPWDD_LOAD_TO_DTeDinfo min_userID,@begindate,@enddate,@weekid
      select @min_userid=min(userid) from userinfo where userid>@min_userid
    end
      

  6.   

    谢谢,ayzwd(菜鸟老三) 但是执行进入了一个死循环我这边再修改了一下 OK了
    declare @min_userid varchar(20)
    select @min_userid=min(userid) from userinfo
    while @@rowcount>0 and @min_userid<>''
    begin
      exec SPWDD_LOAD_TO_DTeDinfo @min_userID,@begindate,@enddate,@weekid
      select @min_userid=min(userid) from userinfo where userid>@min_userid
    end
      

  7.   

    另外我的自增的int型ID字段已经到22903了,记录我全删除了 ,但我想把它清0怎么操作哈?