【发布时间】:2021-02-08 03:50:18
【问题描述】:
是否可以在主键列中自动生成特定的字母数字数据?该列的最大长度为 2 个字符。
表格如下所示:
id
----
4S
33
J6
US
我正在寻找一个存储过程来插入一个随机的 2 个字母数字字符值。这在 SQL Server 中可行吗?
我需要使用类似的组合自动生成它
id like '[A-Z][0-9]')
or (id like '[A-Z][A-Z]' )
or (id like '[0-9][0-9]' )
or (id like '[0-9][A-Z]' )
【问题讨论】:
-
请提供样本数据和预期结果
-
上表是我目前的数据
-
如果有 36 个可能的字符且最大长度为 2,那么在您获得 PK 违规之前最多只能给出 1,296 个可能的值
-
@RyanGadsdon:Martin Smith 指出的是,使用这种技术,您的表中的行数不能超过 1296 行。你确定你可以接受这个限制吗?
-
这感觉就像XY Problem。至少,您最好使用
SEQUENCE并将数字转换为“密钥”,1是'01',10是'0A',1296是'ZZ'。当然,正如@MartinSmith 所说,这会将您的表限制为 1,296 行;我怀疑这是不希望的。
标签: sql sql-server