我遇到一个不好处理的问题,请大家帮忙解答一下。
    我想写一个存储过程,是前台程序输入一系列不确定个数的值,例如:我要在前台程序,当然是ASP.net了,选一批人(数量不确定),然后将这批人的ID都输入存储过程,根据这些ID从A表中逐一提取资料,后逐一写入B表中去, 如何写呢???

解决方案 »

  1.   

    可以直接组合一个SQL查询语句
    dim sql as string ="select * from table1 where id in (" & [不确定个数的id] & ")"
      

  2.   

    那样怎样逐一提取,后逐一insert入B表呢??
      

  3.   

    所有的ID全部用 , 分隔做成字符串传入参数,如 1,2,3,4
    存储过程里面用在这个字符串前面拼接一个(后面拼接一个),如(1,2,3,4)insert into b 
      select * from a 
      where ID in (1,2,3,4)
      

  4.   

    这样都可以,但如果A表的数据要经过处理才可以insert入B表呢?这样的话就有点麻烦了!可不可以将ID号用临时表储存,后用游标逐一读出,逐一处理后逐一inert 入B表!不过ID如果才可以存入临时表,要查查书才可以!
      

  5.   

    还有,如果B表是另一台机的Sqlserver的呢?如何实现?这也是我第一次遇到的问题!唉~!
      

  6.   

    Re:tryj_828(水梦)我照你的方法写成存储过程,将ID串成字符串如:1,2,3,4
    字符串参数是 @IDstring varchar(200)
    但执行:
          insert into b
            select * from a
            where ID in (@IDstring)时出错了!说@IDstring不能转换成int数据,怎办呢?