目的:随机生成一个字符串;例如:UR789SDF4SD5F4DSF5
1、NEWID()函数
SELECT NEWID()
结果:A22E6B13-F632-4AE0-99E3-BA7E943E5621
生成一串由大写字母、数字、横杠组成的程度为36的一串代码
2、实际上我只需要一个12位的兑换码
---------------------------方式1-----------------------------------------
DECLARE @STRNUMBER NVARCHAR(36)
SET @STRNUMBER = NEWID()
SELECT @STRNUMBER AS RESULT
----------------------------方式1结果----------------------
A22E6B13-F632-4AE0-99E3-BA7E943E5621
----------------------------------------------------------
----------------------------方式2-------------------------
--去除‘-’、长度为12
DECLARE @STRNUMBER NVARCHAR(36)
SET @STRNUMBER = CONVERT(NVARCHAR(12),REPLACE(NEWID(),'-',''))
SELECT @STRNUMBER AS RESULT
----------------------------方式2结果-----------------------
C7752O27185D
-----------------------------------------------------------
3、上面第二种处理方式中使用两个函数
CONVERT() 转换类型
REPLACE() 替换字符 其中第一参数是目标字符串、参数二:被替换的字符可以是单个字符‘H’也可以是多个‘acbsd’,参数三:替换结果。
注意事项
1、NEWID 对每台计算机返回的值各不相同。所显示的数字仅起解释说明的作用。
2、在应用方面,生成出来的结果是含有大写的‘O’和数字‘0’,要是有字体的区别,这两个是不好区分的。所以在使用过程中,一般将这两个字符给替换,再使用一次REPLACE()函数。