随机生成字符串

来源:互联网 发布:数据机房 编辑:程序博客网 时间:2024/03/29 19:31


CREATE VIEW V_RAND AS SELECT RAND1 = CONVERT(INT,RAND()*26),RAND2 = RAND()*2  
GO  


CREATE FUNCTION DBO.f_GetRandNum(@LEN INT,@FLAG INT)
RETURNS NVARCHAR(100)
AS
--@LEN 输出字符的长度
--@FLAG 返回值类型 1:大写字母  2:小写字母  3:大小写字母混合
BEGIN
  DECLARE @SQL NVARCHAR(100),@RAND INT
  SELECT @SQL = ''
  IF @LEN > 100
    SET @LEN = 100

  WHILE @LEN > 0
  BEGIN
    SELECT @RAND = RAND1 + (CASE @FLAG WHEN 1 THEN 65 WHEN 2 THEN 97
      ELSE (CASE WHEN RAND2 > 1 THEN 97 ELSE 65 END) END)
    FROM V_RAND

    SELECT @SQL = @SQL + CHAR(@RAND),@LEN = @LEN - 1
  END

  RETURN @SQL
END
GO

SELECT DBO.f_GetRandNum(7,3)