之前创建列都是int或bigint类型,标识规范选择“是”,这个属性为“是”了后,能起到什么作用?sqlserver 

解决方案 »

  1.   

    CREATE TABLE tableA
    (
    id INT NOT NULL IDENTITY(1,1), --是的话,建表语句就会多个IDENTITY关键字,作用是这个字段不允许用户操作,是由系统自动按起始值(1),增量值(1)生成的。
    NAME VARCHAR(10)
    )CREATE TABLE tableB
    (
    id INT NOT NULL, --否的话,建表语句就会少这个关键字。然后这个字段的值由用户来维护。
    NAME VARCHAR(10)
    )--必要时也可以打开选项,由用户来维护自增列(只能插入,不能更新已有的id值)
    SET IDENTITY_INSERT tableA ON
    INSERT tableA(id) VALUES(1)
    SET IDENTITY_INSERT tableA OFF
      

  2.   

    通常,在业务型数据库中,很多人喜欢用自增列做主键,以达到主键唯一性的目的,而标识列就是针对自增列来说的,标识列用IDENTITY来定义,例如:IDENTITY(1,1)中,第一个1代表标识列的第一行的值,第二个1代表每次增长1,也就是说标识列的第二行值是2,以此类推。
    标识列使用int,bigint,甚至是decimal(10,0)或numeric(10,0)是因为整型数据的自动增长,数据库内部有执行的机制。