sql存储过程循环实现事务
2014-10-17 15:03
148 查看
//往一张表中添加数据,获取添加数据生成的ID,再往另一张表中添加多条数据
ALTER PROCEDURE [dbo].[AttendanceCardAndDetail_Add]
@SchoolID int,
@AC_Count int,
@OutTime datetime,
@OutState smallint,
@StartCardNumber bigint,
@EndCardNumber bigint,
@Remark text
AS
BEGIN
begin tran
declare @acid bigint;
insert into AttendanceCard(SchoolID,AC_Count,OutTime,OutState,StartCardNumber,EndCardNumber,Remark)values
(@SchoolID,@AC_Count,@OutTime,@OutState,@StartCardNumber,@EndCardNumber,@Remark);
set @acid=@@IDENTITY;//全局变量
while @AC_Count>0//相当于循环的次数
begin
insert into AttendanceCardDetail(AC_ID,SchoolID,CardNumber,State,DistributionState,Remark)values
(@acid,@SchoolID,@StartCardNumber+@AC_Count-1,0,0,@Remark)
set @AC_Count=@AC_Count-1;
end
if @@ERROR<>0
begin commit rollback
return 0
end
else
begin commit tran
return 1
end
END
ALTER PROCEDURE [dbo].[AttendanceCardAndDetail_Add]
@SchoolID int,
@AC_Count int,
@OutTime datetime,
@OutState smallint,
@StartCardNumber bigint,
@EndCardNumber bigint,
@Remark text
AS
BEGIN
begin tran
declare @acid bigint;
insert into AttendanceCard(SchoolID,AC_Count,OutTime,OutState,StartCardNumber,EndCardNumber,Remark)values
(@SchoolID,@AC_Count,@OutTime,@OutState,@StartCardNumber,@EndCardNumber,@Remark);
set @acid=@@IDENTITY;//全局变量
while @AC_Count>0//相当于循环的次数
begin
insert into AttendanceCardDetail(AC_ID,SchoolID,CardNumber,State,DistributionState,Remark)values
(@acid,@SchoolID,@StartCardNumber+@AC_Count-1,0,0,@Remark)
set @AC_Count=@AC_Count-1;
end
if @@ERROR<>0
begin commit rollback
return 0
end
else
begin commit tran
return 1
end
END
相关文章推荐
- 基于ORACLE数据库的循环建表及循环创建存储过程的SQL语句实现
- MS SQL SERVER 存储过程事务的实现方式
- MS SQL SERVER 存储过程事务的实现方式
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- 一个利用sql 语句来实现分页的存储过程
- pl/sql存储过程中游标嵌套的实现方法
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等(转)
- SQL存储过程循环
- 存储过程中的事务实现(转贴)
- SQL存储过程事务和优化方法
- pl/sql存储过程中游标嵌套的实现方法
- SQL:利用存储过程实现分页
- 利用Sql作业在asp.net 里面实现异步调用存储过程.
- SQL存储过程实现分页
- Sql分页存储过程以及实现
- 利用SQL未公开的存储过程实现分页(更加好用的一个!)
- sql存储过程的while循环
- 利用SQL未公开的存储过程实现分页
- Sql语句与存储过程查询数据的性能测试实现代码
- 求救!胜负比率计算问题?如何用SQL语句实现?(存储过程也可以)