9

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

4

2 回答 2

18

你能不能把它声明为一个 IDENTITY 列:

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

1,1 指的是起始索引和它被递增的数量。

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

编辑:

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

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

DECLARE @yourVariable = SELECT MAX(ID) FROM YourTable

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

于 2013-11-07T19:53:32.040 回答
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')
于 2013-11-07T20:23:44.503 回答