如何在SQL中将整数列值增加1

我的问题是

如何将列的值增加1。

例如,假设列ID值为1,2,3,4 ..

现在当我更新这个表时, ID列应该增加1,

现在ID将变成2,3,4,5 ..

为表格中的每个值添加一个…

 UPDATE myTable SET ID = ID + 1 

要创build一个新值,比先前最高(通常)多一个,请使用IDENTITY列

如果你想为自动生成的每行有一个唯一的编号,这是尼尔的答案是身份。

如果每次更新表格,都要增加值(即它们不是键):

 Update MyTable Set IDColumn = IDColumn + 1 Where <whatever> 

在甲骨文的代码是有点棘手。

您将不得不使用序列对象创build一个自动递增字段(该对象生成一个数字序列)。

使用以下CREATE SEQUENCE语法:

 CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10 

上面的代码创build了一个名为seq_person的序列对象,它以1开始,并且将递增1.它还将caching10个性能值。 caching选项指定将多less个序列值存储在内存中以便更快地访问。

要插入一个新的logging到“Persons”表中,我们将不得不使用nextval函数(这个函数从seq_person序列中检索下一个值):

 INSERT INTO Persons (ID,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen') 

上面的SQL语句会在“Persons”表中插入一条新logging。 “ID”列将被分配seq_person序列中的下一个数字。 “FirstName”列将被设置为“Lars”,“LastName”列将被设置为“Monsen”。

尝试这个 :

 Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1 

你可以使用IDENTITY来为你做这个。

 CREATE TABLE [dbo].[MyTable]( [MyTableID] [int] IDENTITY(1,1) NOT NULL, -- Other columns ) 

当你插入你的第一个logging,你会得到1的Id

你可以试试以下内容:

 DECLARE @i INT SET @i = @@ROWCOUNT + 1 INSERT INTO YourTable (Identity Column) VALUES (@i + 1)