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

5
我需要在数据库表中添加一个新列,但同时也要自动增加(主键)。可以使用以下代码:
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

但是这会创建唯一的整数1、2、3等,但我希望创建长的唯一数字,例如:0542365或带有字母A546980,是否可能?


整数不会以零开头。如果您需要更大范围的整数,请使用BIGINT而不是INT - Paul Maxwell
@MarekGrzenkowicz 有什么原因,我想使用long。 - Klapsius
1个回答

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......等值-自动、安全、可靠,无重复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接