在SQL中增加变量

Mic*_*ner 1 sql sql-server

我有一个没有任何自动增量的表.我必须将数据插入此表,每次将ID递增1000.

所以我有

SELECT @maxId = Max(ID)
INSERT INTO TABLE1 
     (ID, DATA)
VALUES
    (@maxId + 1000, DATA),
    (@maxId + 2000, DATA),
    (@maxId + 3000, DATA)
Run Code Online (Sandbox Code Playgroud)

而不是显式增加每个插入的ID,有没有办法让它'自动增量'.我不能使用其中之一LAST_INSERT_ID()或类似的东西,因为ID是以一种奇怪的方式创建的

Art*_*oAP 5

您可以这样声明字段:

MyID INT IDENTITY (0,1000);
Run Code Online (Sandbox Code Playgroud)

这将自动将每条记录增加1000.

例如:

CREATE TABLE MyTable
(
    MyID INT IDENTITY(0,1000),
    SField  VARCHAR(128)
);

INSERT INTO MyTable (SField) VALUES ('TEST');
INSERT INTO MyTable (SField) VALUES ('TEST1');
INSERT INTO MyTable (SField) VALUES ('TEST2');


SELECT * FROM MyTable
Run Code Online (Sandbox Code Playgroud)

将产生以下结果:

| MyID | SField |
-----------------
| 0    |   TEST |
| 1000 |  TEST1 |
| 2000 |  TEST2 |
Run Code Online (Sandbox Code Playgroud)

  • 创建表时必须声明身份(从我读到的内容).那是对的吗? (2认同)