SQL Server中的自动增量主键(长唯一代码)

时间:2014-08-21 09:50:49

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

我需要在DB表中添加新列,但需要自动增量(主键)。我可以用这个:

ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

但是这会创建独特的整数1,2,3等但是我想创建长的唯一数字例如:0542365或字母A546980它是否可行?

1 个答案:

答案 0 :(得分:8)

可靠而美妙的一种方法:

  • ID INT IDENTITY(1,1)列,以使SQL Server处理数值的自动增量
  • 计算的,持久的列,将该数值转换为您需要的值

所以试试这个:

CREATE TABLE dbo.YourTable
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   AlphaID AS 'A' + RIGHT('00000000' + CAST(ID AS VARCHAR(8)), 8) PERSISTED,
   .... your other columns here....
  )

现在,每次在YourTable中插入一行而未指定IDAlphaID的值时:

INSERT INTO dbo.YourTable(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

然后SQL Server将自动且安全地增加ID值,而AlphaID将包含A0000001A0000002等值。 ....等等 - 自动,安全,可靠,无重复。

相关问题