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