sql-server - 在 SQL Server 中生成带有 4 个字母和 4 个数字的 8 位 varchar

标签 sql-server

我正在尝试生成一个唯一的 varchar ID,它应包含 4 位字母和 4 位数字。它们可以是随机的,但 ID 应该以字母开头,然后是数字。这是在 SQL Server 2008 R2 中。

例如:

ABCD1234 rtfd8798 tyry8745

有人可以帮忙吗?

最佳答案

如果您希望生成恰好 4 个随机字母字符,后跟四个随机数字,则以下内容将实现它。

它不漂亮也不灵活,但应该足以引导您走向正确的方向。

DECLARE @Data   VARCHAR(8)
SET @Data = ''

-- Build first four characters
WHILE (LEN(@Data) < 4)
BEGIN
    SET @Data = @Data + SUBSTRING('abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ', CAST(RAND() * 52 AS INT), 1)
END
-- Build next for numbers
WHILE (LEN(@Data) < 8)
BEGIN
    SET @Data = @Data + SUBSTRING('0123456789', CAST(RAND() * 10 AS INT), 1)
END

PRINT @Data

关于sql-server - 在 SQL Server 中生成带有 4 个字母和 4 个数字的 8 位 varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268609/

相关文章:

mysql - 如何显示重复条目的行?

sql - WHERE ID IN (1, 2, 3, 4, 5, ...) 是最有效的吗?

sql-server - 尽管安装了 SQL Server,但未安装 SQL Server PowerShell 管理单元

r - dBWriteTable 无法将 NULL 写入 SQL Server 表

sql - 在部署 dacpac 时,如何防止 SqlPackage.exe 删除和重新创建约束?

sql - TSQL 不会导致无限循环

sql - 错误 - 指定的数据类型无效。 [数据类型(如果已知)= varchar]

sql - 为什么我的索引没有自动使用?

SQL 一个值属于集合

sql-server - sqlPackage.exe 不包括部署脚本中删除的存储过程