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