最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
三种随便密码生成sql存储过程
时间:2022-06-29 08:20:11 编辑:袖梨 来源:一聚教程网
随机产生密码,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: |
相关文章
- 瓦罐煨汤是我国哪个地方的非遗美食 蚂蚁新村11月27日答案 11-28
- 王者荣耀S38赛季体验服更新有什么 S38赛季体验服更新内容介绍 11-28
- FF14手游拂晓测试怎么参加 11-28
- FF14手游拂晓测试怎么玩 最终幻想14水晶世界拂晓测试招募faq介绍 11-28
- FF14手游拂晓测试怎么参加 最终幻想14水晶世界测试招募活动介绍 11-28
- 《崩坏:星穹铁道》后真相时代成就达成攻略 11-28