我想自动生成唯一的 ID,并附加每个定义的代码。
例如:
UID12345678
CUSID5000
我尝试了 uniqueidentifier
数据类型,但它生成的 ID 不适合用户 ID。
有人有建议吗?
最佳答案
我认为唯一可行的解决方案是使用
ID INT IDENTITY(1,1)
列,让 SQL Server 处理数值的自动增量- 一个计算的、持久的列,用于将该数值转换为您需要的值
所以试试这个:
CREATE TABLE dbo.tblUsers
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
UserID AS 'UID' + RIGHT('00000000' + CAST(ID AS VARCHAR(8)), 8) PERSISTED,
.... your other columns here....
)
现在,每次在 tblUsers
中插入一行而不指定 ID
或 UserID
的值时:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
然后 SQL Server 将自动且安全地增加您的 ID
值,并且 UserID
将包含类似 UID00000001
的值,UID00000002
,......等等 - 自动、安全、可靠、无重复。
更新:列UserID
已计算 - 但它仍然当然有一个数据类型,快速查看对象资源管理器即可发现:
关于sql - 如何在SQL中自动生成像UID12345678这样的唯一ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20674282/