创建非Int和非Guid唯一标识符

Con*_*eak 0 t-sql sql-server sql-server-2008

我正在寻找一种方法SQL Server可以生成一个不是增量Int或GUID的唯一标识符.

唯一ID可以是字母和数字的组合,没有其他字符,如前所述必须是唯一的.

AS93K239DFAK

如果可能的话,必须始终以a开头AS或以K

如果有Insert类似GUID并且IsIdentity = Yes的话,可以自动生成这个唯一ID,那将是很好的.它可以是随机数,也不是在应用程序中预先确定的.

这样做是可能的,还是必须生成应用程序端?

JNK*_*JNK 5

从评论中,听起来你可以使用IDENTITY字段并用0填充并添加前缀/后缀.这样的事情应该有效:

1 - 添加IDENTITY将自动递增的字段
2 - 在表中添加计算字段,其定义为:

[InvoiceNo] AS ('AS' + RIGHT(('000000000' + CAST(idfield AS varchar(9))), 9) + 'FAK')

这将为您invoiceno提供以下格式:

AS000000001FAK
AS000000002FAK
...
AS000995481FAK
Run Code Online (Sandbox Code Playgroud)

  • @ZeeTee`GUIDs`始终是唯一的.它们**全局**唯一,因为在每个sql服务器中生成一个新的,其他服务器在其他地方生成.碰撞是可能的,但极不可能. (3认同)