SQL Serverでランダムな文字列を生成する
方法
ビューとUDFを1つづつ作ります。
--RAND()がFUNCTION内で使用できないので... CREATE VIEW V_RAND AS SELECT RAND() RND GO --UDF CREATE FUNCTION RANDSTR ( @SEEDS AS VARCHAR(MAX), @LENGTH AS TINYINT ) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @RTN AS VARCHAR(MAX) = '' DECLARE @I AS TINYINT = 0 WHILE (@I < @LENGTH) BEGIN SET @I = @I + 1 SET @RTN = @RTN + (SELECT SUBSTRING(@SEEDS, CAST(CEILING(RND * LEN(@SEEDS)) AS INTEGER), 1) FROM V_RAND) END RETURN @RTN END GO
使用例と結果
SELECT DBO.RANDSTR('0123456789abcdefghijklnmopqrstu', 10) SELECT DBO.RANDSTR('ほげ', 10)
-------------------- 072s289gml (1 行処理されました) -------------------- ほほげほげげげげげほ (1 行処理されました)
Work! Enjoy it!