SELECT TOP 99999 id = identity(int,1,1) 
INTO # FROM syscolumns a, syscolumns b ,syscolumns cinsert into card select id , '20080808411' + 'right(000000'+cast(id as varchar),6) from #你的cardnum列得该为varchar(20)位才行.

解决方案 »

  1.   

    int类型越界了,改为bigint即可alter table
    alter column cardID bigint
    alter table
    alter column cardNum bigintdeclare @a bigint
    set @a=2008080841100001
    while @a<=2008080841199999 
    begin
    insert into card(cardNum)
    select @a
    set @a=@a+1
    end
      

  2.   

    int类型越界了,改为bigint即可
     
    alter table
    alter column cardNum bigint;WITH
      L0   AS(SELECT 1 AS c UNION ALL SELECT 1),
      L1   AS(SELECT 1 AS c FROM L0 AS A, L0 AS B),
      L2   AS(SELECT 1 AS c FROM L1 AS A, L1 AS B),
      L3   AS(SELECT 1 AS c FROM L2 AS A, L2 AS B),
      L4   AS(SELECT 1 AS c FROM L3 AS A, L3 AS B),
      L5   AS(SELECT 1 AS c FROM L4 AS A, L4 AS B),
      Nums AS(SELECT ROW_NUMBER() OVER(ORDER BY c) AS n FROM L5) 
    insert into card(cardNum)
    select 2008080841100000+n from Nums
    where n<=99999