如何在SQL Server自动增量中有两列?

时间:2010-09-01 22:41:50

标签: sql-server auto-increment

我在SQL服务器数据库的表中有两列,我想在添加新字段时自动增量。但是,Managment Studio不允许我将两列设置为IDENTITY。还有其他方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:4)

您可以根据第一个字段将第二个字段设为计算字段。

或者进行INSERT触发,而不是以编程方式生成第二个值。

答案 1 :(得分:4)

如果您希望第二列基本上是第一列的镜像:

ALTER TABLE dbo.myTable ADD
   foo  AS [rowid]
GO

如果你想让它应用一些数学公式来实现某种偏移:

ALTER TABLE dbo.myTable ADD
    foo  AS ([rowid]+1) * 7 --or whatever you like.
GO

答案 2 :(得分:1)

每个表只能有一个自动增量字段。但是,您可以根据自动增量字段设置计算字段。或者,您可以有一个int字段,您可以通过前端代码或触发器来管理序列。此外,您还可以在SQL Server中使用sequence

CREATE SEQUENCE MySequence START WITH 100;

CREATE TABLE MyTable
(
    RealIdentity INT IDENTITY(1,1),
    RandomCol NVARCHAR(100),
    FakeIdentity INT DEFAULT NEXT VALUE FOR MySequence
);
相关问题