在Microsoft SQL Server中生成随机ID

时间:2016-01-31 22:33:47

标签: sql sql-server sql-server-2012

我想在sql server中创建一个表并用数据填充(人们的信息)每个人都应该拥有一个不同于sql server自动递增ID的唯一ID 例如,我需要插入第一个人的ID,如下所示:2016xxxx 如何修复2016并随后生成数字后填充而不是xxxx 我应该使用正则表达式吗?

2 个答案:

答案 0 :(得分:0)

您可以创建一个函数,为您获取下一个值,并使用它而不是AUTO_INCREMENT字段。

我不推荐它。在插入之前,您不应该像这样格式化数据。这种事情应该在出路时完成,最好是前端代码。或者你可以写一个查询并创建一个视图...... 但是,如果你必须这样做,那么代码的完整答案是:  Is there a way to insert an auto-incremental primary id with a prefix in mysql database?

答案 1 :(得分:0)

您还可以创建如下所示的计算列

CREATE TABLE tableName
(
    PkAutoId INT PRIMARY KEY IDENTITY(1,1),
    PersonUniqueNo AS (CAST(DATEPART(YEAR,GETDATE()) AS VARCHAR) + RIGHT(RIGHT(CAST(RAND() AS VARCHAR),4) + CAST(PkAutoId AS VARCHAR),4))
)

Computed Column" PersonUniqueNo"是8位数字唯一数字,包括当前年份和随机数的自负值以及4长度的主键ID,总长度将为8。