在程序中给定卡号的范围为:1000-2000,要把这些卡号插入到数据库,用存储过程怎么实现?卡号的开始值和结束值这两个参数可以更改。

解决方案 »

  1.   

    CREATE PROCEDURE InsertDB
    @StartID int = 1000,
    @EndID int = 2000
    AS
    While @EndID <=2000
    Begin
     Insert Into Table Values (Select .....)
    EndGO
      

  2.   

    上楼:@StartID int = 1000,
    @EndID int = 2000
    这了个值我不在存储过程中指定,通过程序传过来,怎么写这个存储过程?
      

  3.   

    CREATE PROCEDURE InsertDB(@StartID int ,@EndID int )
    AS
    declare @CurrentID int 
    set @CurrentID = @StartID 
    While @CurrentID <= @EndID 
    Begin
     Insert Into Table Values (Select .....)
    EndGO
      

  4.   

    To pandaxj(框) ( ) :
    多谢你的方法,但是@CurrentID 怎么让他的值每次加1啊,照你的这个方法去做的话,@CurrentID 一直都没有改变啊,比如说我传过来的@StartID 为100,,@EndID 为104,怎样在数据库里插入100,101,102,103,104,这几条记录啊?
      

  5.   

    set @CurrentID = @CurrentID +1
      

  6.   

    这里只是设置了默认值,你可以在代入参数时指定。
    @StartID int = 1000,
    @EndID int = 2000CREATE PROCEDURE InsertDB
    @StartID int = 1000,
    @EndID int = 2000
    AS
    While StartID <= @EndID
    Begin
     Insert Into Table Values (Select .....)--这里写你的插入SQL语句
     Set @StartID = @StartID +1--这里计数器加1
    EndGO
      

  7.   

    CREATE PROCEDURE InsertDB
    @StartID int ,
    @EndID int 
    AS
    ...
    Begin
     Insert Into Table Values (Select .....where id = @StartID)
    EndGO
      

  8.   

    问题已经解决,谢谢大家的热心参与,尤其感谢3tzjq(永不言弃)提供的方法!