【发布时间】:2011-05-27 08:05:01
【问题描述】:
“数据类型”下拉菜单中没有任何内容指示自动计数器。
我选择了int,我假设在其他地方有一个设置可以将它变成一个自动计数器。
这个想法是为我的主键设置一个 100% 唯一的 ID,每次添加一行时,它都会获得分配给它的下一个可用 ID 号。
【问题讨论】:
标签: sql sql-server tsql sql-server-2008 auto-increment
“数据类型”下拉菜单中没有任何内容指示自动计数器。
我选择了int,我假设在其他地方有一个设置可以将它变成一个自动计数器。
这个想法是为我的主键设置一个 100% 唯一的 ID,每次添加一行时,它都会获得分配给它的下一个可用 ID 号。
【问题讨论】:
标签: sql sql-server tsql sql-server-2008 auto-increment
您所追求的在 SQL Server 术语中称为 IDENTITY。
列必须是数字数据类型 (INT typically, check the range of values to what suits your needs),然后才能将列设置为 IDENTITY - 您可以在屏幕截图中的 表格设计器 下看到该列表。每个表只能有一个 IDENTITY 列——这将在 SQL Server 2011 开始支持序列时发生变化。
【讨论】:
CREATE TABLE dbo.mytable
(
[MY_ID] int identity (1,1) PRIMARY KEY CLUSTERED NOT NULL,
[LAST_NAME] [nvarchar](50) NULL,
[FIRST_NAME] [nvarchar](30) NULL
)
当然如果不是主键,则不需要主键集群部分。
(1,1) 部分表示编号将从 1 开始并以 1 递增。但不要期望身份永远不会有间隙。如果插入回滚或稍后删除记录,则不会填充间隙。您也可以从您选择的任何数字开始,甚至可以增加不同的数字,但 (1,1) 是默认值,并且是最常见的值。
最好使用脚本创建表(尤其是更改它们),然后您可以像任何其他代码一样将它们提交到源代码控制,并准备好部署它们。
【讨论】:
将其标记为主键并将标识列设置为是。这将使其自动递增。
【讨论】: