sql server里最大的标识列类型就是bigInt了,而最大数只有8位,
亿条记录表的标识列怎么设置呢?

解决方案 »

  1.   

    bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
    还不够用?
      

  2.   

    使用整型数据
    整型是完整的数字并不包含小数或分数。Microsoft® SQL Server™ 2000 具有以下大小的整型数据类型: bigint 
    长度为 8 个字节,存储从 –2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 的数字。integer 或 int 
    长度为 4 个字节,存储从 -2.147.483.648 到 2.147.483.647 的数字。smallint 
    长度为 2 个字节,存储从 –32,768 到 32,767 的数字。tinyint 
    长度为 1 个字节,存储从 0 到 255 的数字。那么长了你还不够用
      

  3.   

    declare @tb table(id bigint,id1 int)
    insert @tb
    select 111111111,1111111111select 
    id,id1,
    datalength(sum(id)),
    datalength(sum(id1)),
    datalength(count(1)),
    datalength(count_big(1))  
    from @tb
    group by id,id1(所影响的行数为 1 行)id                   id1                                                         
    -------------------- ----------- ----------- ----------- ----------- ----------- 
    111111111            1111111111  8           4           4           8(所影响的行数为 1 行)我INT型都够了吧