SQL Server 2005数据库中设置自动编号字段的相关知识是本文我们主要要介绍的内容,如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。
具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。在包含标识列的表中插入值时,Microsoft SQL Server 将基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性)自动生成下一个标识符。
注意:只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
修改列的标识属性
在对象资源管理器中,右键单击要更改其数据类型的列所在的表,再单击“修改”。此时,将在表设计器中打开该表。
清除要更改的列的“允许空”复选框。
在“列属性”选项卡中,展开“标识规范”属性。
单击“是标识”子属性的网格单元格,然后从下拉列表中选择“是”。
在“标识种子”单元格中键入值。此值将赋给表中的第一行。默认情况下将赋值 1。
在“标识增量”单元格中键入值。此值是基于“标识种子”依次为每个后续行增加的增量。默认情况下将赋值 1。
例如,假设要为添加到 orders 表的每行自动生成 5 位 Order ID,从 10000 开始并且每次递增 10。为此,应在“标识种子”中键入 10000,在“标识增量”中键入 10。
如果更改表的任何标识属性,则将保留现有的标识值。新的设置值仅应用于添加到表中的新行。
注意:如果频繁执行删除操作的表中存在标识列,则标识值之间会出现不连贯的情况。若要避免出现这种不连贯的情况,请不要使用标识属性。
创建表时指定自动编号的字段
CREATE TABLE [dbo].[UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL,
[UserName] [nchar](10) NOT NULL,
)
说明:创建一个用户信息表UserInfor,并指定UserID为自动编号字段。
其中:IDENTITY(100,2)表示字段的初始值为100,每次增量为2,如输入数据后第一次为100,第二次为102。