我需要在DB表中添加新列,但需要自动增量(主键)。我可以用这个:
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
但是这会创建独特的整数1,2,3等但是我想创建长的唯一数字例如:0542365或字母A546980它是否可行?
答案 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
中插入一行而未指定ID
或AlphaID
的值时:
INSERT INTO dbo.YourTable(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
然后SQL Server将自动且安全地增加ID
值,而AlphaID
将包含A0000001
,A0000002
等值。 ....等等 - 自动,安全,可靠,无重复。