在sqlserver中,我有个字段是递增字段,我用的数据类型是int,长度是4,(这长度4,数据库里是默认的,手动改不了)
我是觉的这样能存的范围太小了,请问在sqlserver中一般用来做为递增字段的设置为什么类型的?

解决方案 »

  1.   

    通常设为int或bigint,如
    create table tb(id int identity(1,1),col varchar(10))
      

  2.   

    create table tb(id bigint identity(1,1),col varchar(10))
    insert tb select 'a'
    union all select 'b'
    union all select 'c'select * from tb
    /*
    id                   col
    -------------------- ----------
    1                    a
    2                    b
    3                    c(3 行受影响)
    */
    drop table tb做个例子.
      

  3.   

    int最大是20亿,一般的使用是足够了
    如果担心不够,可以把int改为bigint,它是8个字节的,最大2^63!
      

  4.   

    长度为4不代表4位数字,int型已经够用了。
    int、bigint、smallint 和 tinyint
    使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。注释
    在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。