SQLServer“标识列”的相关问题
下面我们看一张表:想一想在数据库SQLServer中我们如何能更简便的向这张表格中添加数据呢?
仔细观察此表我们不难发现,ID字段的这列数据的添充是有规律可循的,它是一个等比自增的数列,向数据表中添加这样的数据有没有简单的方法呢?
这就谈到了SQLServer标识列的问题。我查询一些资料做了总结,在此和大家一起分享受与交流。
(1)标识列的定义
标识列,(通常也称为“标识字段”或者称为“自动增长字段”)是一行记录区别其它记录的标识,为的也是能唯一地检索出该行记录。
注意:一个表中只能有一个标识列(标识字段),一般是把“主键”设为标识列。
(2)如何把一个字段设为标识列?
下面我以SQLServer2008为例来看一下它的设置步骤:
如:右键单击——表Person3,左键单击——“设计”属性,然后选中要设为标识列的字段,在“标识规范”中,将字段的“是标识”设为“是”,最后关闭此窗口,保存即可。
从上图中“标识规范”中看到,标识列中还有个“标识种子”和“标识增量”,主要是为了避免重复值的出现,便于查询。
1. 标识种子 是开始的数是多少,默认为1。
2. 标识增量(也称为增长种子)是每增加一条数据增加的值是多少,默认为1。
3. 标识列不容许插入值,是自动给值的,强制给会报错。
identity(1,1) 那么该列标识种子是1,增长种子也是1。第一个参数是标实种子,第二个参数是增长种子。
注意:在设置标识列之前,要在—‘工具’菜单中找到—‘选项’—在选项中—把‘阻止保存要求重新建表的更改’的“√”去掉,否则SQLServer要修改表的标识列没法修改。
(3)设置标识列的好处
标识列是自动增长的,从种子开始,依次递增,递增量位自己设置的。比如:种子是1,增长量为1,那么标识列的值是:1、2、3、4、5……依次类推。所以你写Insert语句的时候,不用写标识列的值。
也就是说:标识列实现了字段自增,解决的是并发的问题,不用开发人员控制自增,SQLServer会自动分配标识列的值,如果两个人同时往数据库里面插数据时,将会产生唯一的自动增加为标识.