自动增加sql-server中的非标识列

时间:2015-11-20 08:08:18

标签: sql sql-server tsql sql-server-2012

我们的数据库中有非Identity Column具有特定值。我们有如下要求,

每当记录insert进入该列时,值应加1。

如何在sql server处理此问题?

感谢您的帮助。

3 个答案:

答案 0 :(得分:8)

好吧,您可以使用SQL Server 2012中引入的SEQUENCE语句带来生成ID的方法

要在insert语句中使用它,您需要首先创建这样的序列 -

CREATE SEQUENCE dbo.Id_Sequence
    AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE

现在在你的插入语句中使用它 -

INSERT  INTO dbo.Test1
        ( orderid ,
          custid ,
          empid
        )
        SELECT NEXT VALUE FOR dbo.Id_Sequence,
                @custid ,
                @empid

那就是它。

答案 1 :(得分:2)

尝试创建TRIGGER

CREATE TRIGGER incrementValue
ON Test
FOR Insert
AS 
   Update Test  
   set columnvalue = columnvalue +1 
   where id in (select id from inserted)
GO

答案 2 :(得分:0)

您可以加载表格的最大值并添加+1

SELECT MAX(MyColumn)+1 FROM MyTable

首先可以添加ISNULL。

ISNULL((SELECT MAX(MyColumn)+1 FROM MyTable),0)