避免在SQL中的NEWID()中使用某些字符

Div*_*ose 0 sql database sql-server newid sql-server-2008

我有一个列id和列表name.在id列中,NEWID()插入了使用生成的密钥.

SET @myid = NEWID()
SELECT @id = SUBSTRING(CONVERT(varchar(255), @myid), LEN(@myid)-5, LEN(@myid))
Run Code Online (Sandbox Code Playgroud)

这可能是一些随机生成的字母数字键,但我想避免使用此键中的字母O和数字0.简单替换O和0将不起作用.有没有其他方法可以做到这一点?

ror*_*.ap 7

NEWID()函数生成一个UNIQUEIDENTIFIER值AKA和GUID.你无法控制价值是什么,也不重要.如果你需要控制它,那么你使用它就错了.它不仅仅是一个随机生成的字符串(我建议你在我提供的链接上阅读GUID).

GUID值由十六进制字符组成,即0-9和AF.因此,你永远不会有这封信O.

  • 正确答案.令人惊讶的是,OP很难知道他处理的是什么 - 假设O将出现在GUID中. (4认同)
  • @LCIII - 有时没有替代解决方案.问题是*具体*关于避免`NEWID()`产生的字符(标题甚至说明了多少).我的答案是关键.无论哪种方式,我都不认为我忽视提供替代解决方案会使我的回答仅仅是评论. (3认同)