随机产生密码,Insus.NET总结了三个,并分别写成了存储过程。
第一个,
| 代码如下 | 复制代码 |
|
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] |
|
第二个,
| 代码如下 | 复制代码 |
| usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] ( @Length INT = 8 ) AS BEGIN DECLARE @RandomPassword NVARCHAR(MAX) = N'',@L INT = 1 --随机密码将由下面字符串产生,数字0-9,大写字母A-Z,小写字母a-z DECLARE @BaseString VARCHAR(255) = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' WHILE @L <= @Length --循环密码长度 BEGIN --61是变量@BaseString的长度减一 SET @RandomPassword = @RandomPassword + SUBSTRING(@BaseString, CONVERT(INT,ROUND(RAND() * 61 + 1,0)),1) SET @L = @L + 1 END SELECT @RandomPassword END |
|
第三个,
| 代码如下 | 复制代码 |
| usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] ( @Length INT = 8 ) AS BEGIN DECLARE @RandomPassword NVARCHAR(MAX) = N'' DECLARE @R TINYINT,@L INT = 1 WHILE @L <= @Length --循环密码长度 BEGIN SET @R = ROUND(RAND() * 2, 0) --随机产生0,1,2整数 IF @R = 0 --当变量为0时,将随机产生一位数字 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 9 + 48,0)) ELSE IF @R = 1 --当变量为1时,将随机产生一位大写字母 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 25 + 65,0)) ELSE IF @R = 2 --当变量为2时,将随机产生一位小写字母 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 25 + 97,0)) SET @L = @L + 1 END SELECT @RandomPassword END |
|
最后一个也可以重构写成:
| 代码如下 | 复制代码 |
|
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] Also reference: |
|
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏