Nis*_*tha 10 sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
我想自动生成唯一ID,每个定义的代码附加到它.
例如:
UID12345678
CUSID5000
Run Code Online (Sandbox Code Playgroud)
我尝试了uniqueidentifier数据类型,但它生成的id不适合用户ID.
有人有建议吗?
mar*_*c_s 29
在我看来,唯一可行的解决方案是使用
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....
)
Run Code Online (Sandbox Code Playgroud)
现在,每次插入行tblUsers而不指定ID或的值UserID:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
Run Code Online (Sandbox Code Playgroud)
那么SQL Server将自动,安全地增加你的ID价值,UserID将包含类似的值UID00000001,UID00000002,......等等-自动,安全,可靠,无重复.
更新:列UserID是计算的 - 但它仍然是OF COURSE有一个数据类型,快速查看对象资源管理器显示:
| 归档时间: |
|
| 查看次数: |
99028 次 |
| 最近记录: |