自动增加bigint列?

时间:2013-11-07 19:43:56

标签: sql-server sql-server-2005

我希望在插入表格的每一行数据中都有一个bigint ID列。我希望Sql server生成数字。我试图创建一个带有bigint列ID的表。我希望这是自动增量,第一个值为1.我尝试在我的create table语句中使用[ID] [bigint] AUTO_INCREMENT NOT NULL,但是我收到错误 - Incorrect syntax near 'AUTO_INCREMENT'.我该怎么做?

2 个答案:

答案 0 :(得分:16)

您能不能将其声明为IDENTITY列:

[ID] [bigint] IDENTITY(1,1)NOT NULL;

1,1指的是起始索引及其增加量。

注意:执行插入时,不必为ID列提供值。它会自动选择它。如果需要,您可以稍后修改这些值。

编辑:

或者,您可以使用存储过程来处理所有插入。

例:
存储过程将像普通插入一样接收变量(每列一个变量)。存储过程中的逻辑可以选择表中当前存在的最大值,并选择该值作为其最大值。

DECLARE @yourVariable = SELECT MAX(ID) FROM YourTable

使用@yourVariable作为插入值。您可以根据需要增加或更改值。

答案 1 :(得分:0)

我在这里得到了答案 - http://www.sqlservercentral.com/Forums/Topic1512425-149-1.aspx

CREATE TABLE Test (
ID BIGINT IDENTITY NOT NULL,
SomeOtherColumn char(1)
)

INSERT INTO Test (SomeOtherColumn)
values ('a')