如何在SQL 2008 R2中的表中创建AutoCounter列?

时间:2010-12-17 20:01:23

标签: sql sql-server tsql sql-server-2008 auto-increment

“数据类型”下拉列表中没有任何内容表示自动计数器 我选择int,我假设其他地方有一个设置将其变成自动计数器 我的想法是为我的主键提供100%唯一ID,每次添加一行时,它都会获得分配给它的下一个可用ID号。

http://img64.imageshack.us/img64/2472/primarykey.png

3 个答案:

答案 0 :(得分:8)

您所使用的内容在SQL Server术语中称为IDENTITY。

列必须是数字数据类型(INT typically, check the range of values to what suits your needs),然后才能将列设置为IDENTITY - 您可以在表设计器表设计器中看到屏幕截图中的列表。每个表只能有一个IDENTITY列 - 当它们开始支持序列时,这将在SQL Server 2011中发生更改。

答案 1 :(得分:3)

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)是默认值,并且最常见的价值。

最好使用脚本创建表(尤其是更改它们),然后您可以像任何其他代码一样将它们提交到源控件,并准备好部署它们。

答案 2 :(得分:-1)

将其标记为主键,并将“标识”列设置为“是”。这将使其自动增加。