Code if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_CreateNewPassword]') and OBJECTPROPERTY(id, N'IsProcedure') =1)
drop procedure [dbo].[sp_CreateNewPassword]
GO
--避免出错处理, 避免出现这样的情况,@Qty =1000, @StartNO = ‘001’ set @i = Len((Cast(@StartNo as Int) + @Qty)) set @j = Len(@StartNo) if @i > @j
begin while @i > @j
begin set @StartNo ='0'+ @StartNo set @j = @j +1
End
End
set @Temp ='' set @j =0 set @CardNO =''
while Len(@Temp) < @Lenght --判断字符串@Temp 的长度是否大于 @Lenght 卡密的长度
begin --自动生成一个随机数 set @i = Cast(FLOOR(Rand() *74) as Int) +48
--判断这个随数数的数字范围,0~9, A~Z, a~z 才是有效范围,其他不进行操作 if (@i >=48 and @i <=57) or (@i >65 and @i <90) or (@i >=97 and @i <=122)
begin set @Temp = @Temp + Char(@i)
End
--如果 @Temp 的长度已经等于 @Lenght的长度,并且临时表的卡密数量 @j 小于 需要生成的数量 @Qty if (Len(@Temp) = @Lenght) and (@Qty > @j)
begin set @Temp = @Money + @Temp
if Not Exists(select * from @tblReturn where Password = @Temp)
begin --生成卡号 if @CarNOPrefix <>''
begin --如果卡号开始号码没有输入,则弹出提示 if @StartNo =''
begin
Raiserror('请输入卡号开始号码再运行', 16, 1)
Return
End
--如果临时表没有记录,则卡号直接相加即可 if not Exists(select * from @tblReturn)
begin set @CardNO = @CarNOPrefix + @StartNO
End else
begin --如果临时表存在记录,则进行获取卡号操作
Declare @StartNoLen int set @StartNoLen = Len((Cast(@StartNo as Int) + @Qty))
Select @i= Max(Right(CardNO, @StartNoLen)) +1 From @tblReturn
Declare @ID varchar(200) set @ID = Cast(@i as Varchar(200))
while Len(@ID) < @StartNoLen
begin set @ID ='0'+ @ID
End
set @CardNO = @CarNOPrefix + @ID
End
End
Insert Into @tblReturn(CardNO, Password)
select @CardNO, @Temp
set @Temp =''
set @j = @j +1
End
End
End
--如果没有卡号,则直接查询密码 if @CarNOPrefix <>''
select CardNO, Upper(Password) as Password from @tblReturn else
select Upper(Password) From @tblReturn
End
Go
exec sp_CreateNewPassword '100', '20', 100, 'abcd', '501'
Go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_CreateNewPassword]') and OBJECTPROPERTY(id, N'IsProcedure') =1)
drop procedure [dbo].[sp_CreateNewPassword]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?