我需要在数据库表中添加新列,但具有自动增量(主键)。我可以用这个:
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
但这会创建唯一的整数 1、2、3 等,但我想创建长的唯一数字 exmpl: 0542365 或字母 A546980 可能吗?
最佳答案
可靠且良好地做到这一点的一种方法:
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
、......等等 - 自动、安全、可靠、无重复。
关于sql - SQL Server中的自动递增主键(长唯一代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25423255/