insert into t1 (number,name) 
(select name from employee  )
我的number是从123到223的数字
name共有100条,该怎么写啊1
使得插入的数据的number从123开始到223结束?
高手指点一下啊!

解决方案 »

  1.   

    insert into t1 (number,name) 
    (select identity(123,1), name from employee  )
      

  2.   

    insert into t1 (number,name) select identity(int,123,1),name from employee;
      

  3.   

    select id=identity(int,123,1),name into #t1 from employee
    go
    insert into t1 (number,name) 
    select id,name from #t1
    where id<=223
      

  4.   

    错了,应该这么用
    select identity(int,123,1) as number, name
    into t1
    from employee
      

  5.   

    declare @number int
    set @number=123
    while @number!>223
    begin
    insert into t1 (number,name) 
    (select @number,name from employee  )
    set @number=@number+1
    endselect * from t1
      

  6.   

    select identity(int,123,1) as number,name into #t from employee;
    insert into t1 select * from #t;
    drop table #t;
      

  7.   

    我不是在t1中新建一个number列啊,是这个列原来就有的啊!
    原来表里number也有数据的,
    现在是新增数据
      

  8.   

    那就要gahade(与君共勉) 的方法,先把数据放临时表里
      

  9.   

    用游标的:
    declare @name varchar(8),@number int;declare cur cursor for select [name] from employee;
    open cur;
    fetch cur into @name;
    set @number=123;
    while @@fetch_status=0
    begin
    print @name
    fetch cur into @name;
    set @number=@number+1
    insert into t1 (number,name) select @number,name from employee;
    end
    close cur;
    deallocate cur;
      

  10.   

    declare @name varchar(20)
    declare @number int
    set @number = 123
    declare cur_tmp cursor for
    select name from employee
    open cur_tmp
    fetch next from cur_tmp into @name
    while @@fetch_status=0
    begin
    insert into t1 (number,name) 
    select @i,name from employee
    set @i = @i + 1
    fetch next from cur_tmp into @name
    end
    close cur_tmp
    deallocate cur_tmp
      

  11.   

    错了,纠正如下:
    用游标的:
    declare @name varchar(8),@number int;declare cur cursor for select [name] from employee;
    open cur;
    fetch cur into @name;
    set @number=123;
    while @@fetch_status=0
    begin
    print @name
    fetch cur into @name;
    set @number=@number+1
    insert into t1 (number,name) values(@number,name);
    end
    close cur;
    deallocate cur;
      

  12.   

    怎么老迷糊呢!
    用游标的:
    declare @name varchar(8),@number int;declare cur cursor for select [name] from employee;
    open cur;
    fetch cur into @name;
    set @number=123;
    while @@fetch_status=0
    begin
    set @number=@number+1
    insert into t1 (number,name) values(@number,name);
    fetch cur into @name;
    end
    close cur;
    deallocate cur;
      

  13.   

    declare @name varchar(8),@number int;declare cur cursor for select [name] from employee;
    open cur;
    fetch cur into @name;
    set @number=123;
    while @@fetch_status=0
    begin
    insert into t1 (number,name) values(@number,name);
    fetch cur into @name;
    set @number=@number+1
    end
    close cur;
    deallocate cur;
      

  14.   

    更改下declare @name varchar(20)
    declare @number int
    set @number = 123
    declare cur_tmp cursor for
    select name from employee
    open cur_tmp
    fetch next from cur_tmp into @name
    while @@fetch_status=0
    begin
    insert into t1 (number,name) 
    select @number,@name
    set @number = @number + 1
    fetch next from cur_tmp into @name
    end
    close cur_tmp
    deallocate cur_tmp
      

  15.   

    insert into t1 (number,name) select identity(int,123,1),name from employee
    -----------------------------------------------------------------------------
    游标好好学习学习~.......
      

  16.   

    insert into t1 (number,name) select identity(int,123,1),name from employee这个可以吗?你们都试过了吗?
    这里不能用 identity的吧?
      

  17.   

    没看过别瞎说! 

    给我说?
    我在查询分析器中执行,会报错的啊
    select 中保存 identity的,需要有into
      

  18.   

    identity 在select 語句中必須有into的
      

  19.   

    --先插入name
    insert into t1 (name)  select name from employee --再通过变量,修改number,从123开始
    declare @i int
    set @i=122
    update a  set @i=@i+1,number=@i from employee a
      

  20.   


    WHILE (SELECT number FROM t1) <= 223
    BEGIN
      INSERT INTO t1 (number,name) 
      SELECT IDentity(int,123,1) 'RowOrder',name
      FROM employee
      SELECT MAX(number) FROM t1
      IF (SELECT MAX(number) FROM t1) > 223
      BREAK
       ELSE
      CONTINUE
    END
      

  21.   

    更正下:假设你的employee表的主键为employeeid,是自增量
    DECLARE @employeeid int
    SET @employeeid = 1
    WHILE (SELECT number FROM t1) <= 223
    BEGIN
      INSERT INTO t1 (number,name) 
      SELECT IDentity(int,123,1) 'RowOrder',name
      FROM employee
      WHERE employeeid=1
      SELECT MAX(number) FROM t1
      IF (SELECT MAX(number) FROM t1) > 223
      BREAK
       ELSE
      SET @employeeid = employeeid + 1
      CONTINUE
    END
      

  22.   

    假设你的employee表的主键为employeeid,是自增量
    DECLARE @employeeid int
    SET @employeeid = 1
    WHILE (SELECT number FROM t1) <= 223
    BEGIN
      INSERT INTO t1 (number,name) 
      SELECT IDentity(int,123,1) 'RowOrder',name
      FROM employee
      WHERE employeeid = @employeeid
      SELECT MAX(number) FROM t1
      IF (SELECT MAX(number) FROM t1) > 223
      BREAK
       ELSE
      SET @employeeid = employeeid + 1
      CONTINUE
    END
      

  23.   

    insert into t1 (number,name) 
    (select a=identity(int,123,1),name from employee  where a<236)
      

  24.   

    select id=identity(int,123,1),name into #t1 from employee where from #t1
    where id<=223
    goinsert into t1 (number,name) select id,name from #t1 
    drop table #t1
      

  25.   

    select id=identity(int,123,1),name into #t1 from employee where id<=223
    goinsert into t1 (number,name) select id,name from #t1 
    drop table #t1