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