CREATE PROCEDURE p_creatpwd
@startnum bigint,--开始位置
@creatnum bigint,--生成数量
@bitnum int, --生成位数
@msg varchar(50) output --输出信息
as
declare @i bigint
declare @maxi bigint
declare @sum bigint -- 记录插入的个数
set @i = @startnum
set @maxi = @i + @creatnum
set @sum=0BEGIN TRAN T1while @i<@maxi
begin
set @i = @i + 1
insert into TMP_PwdCode_tab(PWDCode,OrderRand,bitnum)values(cast(@i as varchar(50)),cast(ceiling(rand()*10000)as int),@bitnum)
IF (@@ERROR <>0 )
begin
set @sum = 0 --如果有错误将计数器清为零
break --如果有错误就退出当前循环
end
set @sum= @sum+1
end
Update MapingNum_tab set StarNum= StarNum+ @sum ,freenum=freenum+@sum where bitnum=@bitnum
IF (@@ERROR =0 )
COMMIT TRAN T1
else
ROLLBACK TRAN T1set @msg = @sum
GO
@startnum bigint,--开始位置
@creatnum bigint,--生成数量
@bitnum int, --生成位数
@msg varchar(50) output --输出信息
as
declare @i bigint
declare @maxi bigint
declare @sum bigint -- 记录插入的个数
set @i = @startnum
set @maxi = @i + @creatnum
set @sum=0BEGIN TRAN T1while @i<@maxi
begin
set @i = @i + 1
insert into TMP_PwdCode_tab(PWDCode,OrderRand,bitnum)values(cast(@i as varchar(50)),cast(ceiling(rand()*10000)as int),@bitnum)
IF (@@ERROR <>0 )
begin
set @sum = 0 --如果有错误将计数器清为零
break --如果有错误就退出当前循环
end
set @sum= @sum+1
end
Update MapingNum_tab set StarNum= StarNum+ @sum ,freenum=freenum+@sum where bitnum=@bitnum
IF (@@ERROR =0 )
COMMIT TRAN T1
else
ROLLBACK TRAN T1set @msg = @sum
GO
解决方案 »
- 查询出俩表的不同纪录
- 问一个sql查询语句的写法
- 【【【取数据库的100条数据】】】】】】
- 怎样把ACCESS数据库中的表导入SQL数据库中?
- sql2005中的row_number() 函数
- 如何验证两个表的数据是否完全一样
- SQL Server 2000 的问题,急急急!!!!
- 求助!MSSQL 2000装在Win2003上出现“Microsoft 全文检索引擎包的安装失败。(-2147220991) 0x80040201 事件无法调用任何订户”的错误
- 数据更新问题
- 嵌套累计值计算的问题(有点难度,求助)
- 基于DTD的XML查询设计,请大家帮忙
- 新建执行SSIS包代理,指定的@subsystem_id('11')不存在
@startnum bigint,--开始位置
@creatnum bigint,--生成数量
@bitnum int, --生成位数
@msg varchar(50) output --输出信息
as
declare @i bigint
declare @maxi bigint
declare @sum bigint -- 记录插入的个数
set @i = @startnum
set @maxi = @i + @creatnum
set @sum=0BEGIN TRAN T1while @i <@maxi
begin
set @i = @i + 1
insert into TMP_PwdCode_tab(PWDCode,OrderRand,bitnum)values(cast(@i as varchar(50)),cast(ceiling(rand()*10000)as int),@bitnum)
IF (@@ERROR <>0 )
begin
rollback tran
return
end
set @sum= @sum+1
end
Update MapingNum_tab set StarNum= StarNum+ @sum ,freenum=freenum+@sum where bitnum=@bitnum
IF (@@ERROR =0 )
COMMIT TRAN T1
else
ROLLBACK TRAN T1set @msg = @sum
GO