Strings alfa-numéricas aleatórias T-SQL usando crypt_gen_random

Eu precisava encontrar uma maneira de produzir strings alfanuméricas a partir do T-SQL que não fossem apenas um UUID ou hash de um. Eu também queria usar a função aleatória crypt gen do T-SQL .

O código a seguir produz sequências de caracteres como a seguinte:

KKTRpGPOqFOwr8S9pmkRwpiRRTBVJvy32VkpSWYVvyfoYadW
8LHEKokwrvVBQQJ9P3MCzYtcMPvEbFvEmHtklKjogEUJfmxB
QlACUJc2uHQ1DkX2jbjnpcyPD1d8xEhDZm2XyRrhTE77HRTo

Espero que outra pessoa ache isso útil

declare @sLength tinyint
declare
@randomString varchar(50)
declare
@counter tinyint
declare
@nextChar char(1)
declare
@rnd as float

set @sLength = 48
set @counter = 1
set @randomString = ''

while @counter <= @sLength
begin
-- crypt_gen_random produces a random number. We need a random
-- float.
select @rnd = cast(cast(cast(crypt_gen_random(2) AS int) AS float) /
65535 as float)
select @nextChar = char(48 + convert(int, (122-48+1) * @rnd))
if ascii(@nextChar) not in (58,59,60,61,62,63,64,91,92,93,94,95,96)
begin
select @randomString = @randomString + @nextChar
set @counter = @counter + 1
end
end
select @randomString