Regis,
Segue a SP, altere-a como precisar:
ALTER PROCEDURE [dbo].[GenerateRandomString]
@randomString varchar(32) OUTPUT
AS
BEGIN
SET NOCOUNT ON
DECLARE @sLength int
DECLARE @counter tinyint
DECLARE @nextChar char(1)
DECLARE @letras varchar(255)
SET @counter = 1
SET @sLength = 10
SET @randomString = ''
SET @letras = '65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90'
WHILE @counter <= 31
BEGIN
SELECT @nextChar = CHAR(ROUND(RAND() * 93 + 33, 0))
IF ASCII(@nextChar) in (65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90)
Or ASCII(@nextChar) in (48,49,50,51,52,53,51,55,56,57)
BEGIN
IF @counter = 9 OR @counter = 14 OR @counter = 19
SELECT @randomString = @randomString + '-'
ELSE
SELECT @randomString = @randomString + @nextChar
SET @counter = @counter + 1
END
END
END
Para ver seu funcionamento, execute:
declare @variavel char(32)
exec GenerateRandomString @variavel output
PRINT 'O valor é: '+@variavel
Abraços
Att
Luiz Maia
Funcionou perfeitamente, era exatamente isso que eu queria, nossa ficou ótimo, valew mesmo. E super fácil de entender e aprender.
Valew
Regis,
Precisando, é so falar.
Abraços
Att
Luiz Maia