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

Var*_*der 74 sql-server-2005

我的问题是

如何将列的值增加1.

例如,假设一列ID具有值1,2,3,4,...

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

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

gbn*_*gbn 124

要为表中的每个值添加一个...

UPDATE myTable
SET ID = ID + 1
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,当列为NULL时,这确实_not_工作.即使在递增之后,NULL列也保持为NULL.要解决此问题,请使用[`ISNULL`语句](http://msdn.microsoft.com/en-us/library/ms184325.aspx),如下所示:`UPDATE myTable SET ID = ISNULL(ID,0)+ 1`(摘自[此SO答案](http://stackoverflow.com/a/9136574/107625)) (32认同)

kaj*_*kaj 38

如果你想为自动生成的每一行都有一个唯一的编号,根据Neil的回答,这就是IDENTITY.

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

Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>
Run Code Online (Sandbox Code Playgroud)


小智 8

更新已接受的答案

这样可能会更短。

UPDATE myTable
SET ID += 1
WHERE <Condition>

Run Code Online (Sandbox Code Playgroud)


kis*_*eji 5

尝试这个:

Update Emp set testCount = ISNULL(testCount, 0) + 1 where testId=1
Run Code Online (Sandbox Code Playgroud)


Nei*_*ght 1

您可以使用IDENTITY它来为您完成此操作。

CREATE TABLE [dbo].[MyTable](
    [MyTableID] [int] IDENTITY(1,1) NOT NULL,
    -- Other columns
)
Run Code Online (Sandbox Code Playgroud)

当您插入第一条记录时,您将得到Id1。