动态密码sql

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(4, 3)+'@' +right(str(rand(),8,8),3)


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值