Generating random strings with T-SQL

前端 未结 27 1931
青春惊慌失措
青春惊慌失措 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:56

    Sometimes we need a lot of random things: love, kindness, vacation, etc. I have collected a few random generators over the years, and these are from Pinal Dave and a stackoverflow answer I found once. Refs below.

    --Adapted from Pinal Dave; http://blog.sqlauthority.com/2007/04/29/sql-server-random-number-generator-script-sql-query/
    SELECT 
        ABS( CAST( NEWID() AS BINARY( 6)) %1000) + 1 AS RandomInt
        , CAST( (ABS( CAST( NEWID() AS BINARY( 6)) %1000) + 1)/7.0123 AS NUMERIC( 15,4)) AS RandomNumeric
        , DATEADD( DAY, -1*(ABS( CAST( NEWID() AS BINARY( 6)) %1000) + 1), GETDATE()) AS RandomDate
        --This line from http://stackoverflow.com/questions/15038311/sql-password-generator-8-characters-upper-and-lower-and-include-a-number
        , CAST((ABS(CHECKSUM(NEWID()))%10) AS VARCHAR(1)) + CHAR(ASCII('a')+(ABS(CHECKSUM(NEWID()))%25)) + CHAR(ASCII('A')+(ABS(CHECKSUM(NEWID()))%25)) + LEFT(NEWID(),5) AS RandomChar
        , ABS(CHECKSUM(NEWID()))%50000+1 AS RandomID
    

提交回复
热议问题