Generating random strings with T-SQL

前端 未结 27 1946
青春惊慌失措
青春惊慌失措 2020-11-29 18:10

If you wanted to generate a pseudorandom alphanumeric string using T-SQL, how would you do it? How would you exclude characters like dollar signs, dashes, and slashes from

27条回答
  •  不知归路
    2020-11-29 18:52

    it's very simply.use it and enjoy.

    CREATE VIEW [dbo].[vwGetNewId]
    AS
    SELECT        NEWID() AS Id
    
    Creat FUNCTION [dbo].[fnGenerateRandomString](@length INT = 8)
    RETURNS NVARCHAR(MAX)
    AS
    BEGIN
    
    DECLARE @result CHAR(2000);
    
    DECLARE @String VARCHAR(2000);
    
    SET @String = 'abcdefghijklmnopqrstuvwxyz' + --lower letters
    'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + --upper letters
    '1234567890'; --number characters
    
    SELECT @result =
    (
        SELECT TOP (@length)
               SUBSTRING(@String, 1 + number, 1) AS [text()]
        FROM master..spt_values
        WHERE number < DATALENGTH(@String)
              AND type = 'P'
        ORDER BY
    (
        SELECT TOP 1 Id FROM dbo.vwGetNewId
    )   --instead of using newid()
        FOR XML PATH('')
    );
    
    RETURN @result;
    
    END;
    

提交回复
热议问题