如何:修改列标识属性
如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。 在每个表中只能设置一个列的标识属性。
含有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每行(如,雇员标识号)。 在含有标识列的表中插入值时,基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性),Microsoft SQL Server 将自动生成下一个标识符。
备注
为 SQL Server 2012 格式的数据库提供了一个新版本的表设计器。本主题介绍表设计器的旧版本,可将其与 SQL Server 早期格式的数据库配合使用。
在新版本中,可通过图形界面或直接在脚本窗格中更改表定义。如果使用图形界面,表定义将在脚本窗格中自动更新。若要在脚本窗格中应用 SQL 代码,请选择“更新”按钮。有关新版本的更多信息,请参见如何使用表设计器创建数据库对象。
备注
只能为不允许空值且数据类型是 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
修改列的标识属性
在服务器资源管理器中右击包含要修改其标识属性的列的表,再单击**“打开表定义”**。
该表在**“表设计器”**中打开。
清除要更改的列的**“允许空”**复选框。
在**“列属性”选项卡中展开“标识规范”**属性。
单击**“是标识”子属性的网格单元格,再从下拉列表中选择“是”**。
在**“标识种子”**单元格中键入值。 此值将被赋给表中的第一行。 默认情况下将赋值 1。
在**“标识增量”单元格中键入值。 该值是为每个后续行给“标识种子”**添加的增量。 默认情况下将赋值 1。
例如,假设要为添加到 orders 表的每行自动生成一个 5 位数的订单 ID,此 ID 从 10000 开始并且每次递增 10。 为此,应在**“标识种子”中键入 10000,在“标识增量”**中键入 10。
如果更改表的任何标识属性,则将保留现有的标识值。 新的设置值仅应用于添加到表中的新行。
备注
如果经常进行删除的表中存在标识列,则标识值之间会出现间隙。如果要避免这样的间隙,请不要使用标识属性。
当您在网格单元格外单击或使用 Tab 键移动到其他网格单元格后,**“标识规范”**属性的新值将赋给表设计器中的列。 当您在表设计器中保存更改时,这些值将在数据库中生效。