日期:2014-05-17  浏览次数:20456 次

sql server 中列属性 标识规范 的意义是什么?全面点。
之前创建列都是int或bigint类型,标识规范选择“是”,这个属性为“是”了后,能起到什么作用?
sqlserver?

------解决方案--------------------
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

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