sqlserver 存储过程和事务
一天,一个不知名的朋友问我在数据库中存储过程和事务怎样一起用呀?我告诉他去百度,他说没有找到,那我就告诉他了,觉得挺实用就贴了出来,
简单的介绍一下事务吧,一个事务可以看成一个集合,要么全部执行,要么全部不只想,也就是提交事务和回滚事务
create proc proc_UpIn---创建一个存储过程
(
@id int,
@name varchar(100),
@uid int
)
as
begin tran---(简单的说是开始事务)
declare @count int,@num int-----声明两个变量,一个区接收错误信息,一个去接接收受影响的行数
set @count=0
set @num=0
begin
update files set f_readdegree=f_readdegree+1 where f_id=@id ---更新语句
set @count=@count+@@error-----这一句是接收上一句sql语句是否有错误,返回 ,此句必须和sql语句想靠,,强调一下,他是接收他上面的sql--------------------------------------------------语句是否只有错误
set @num= @@RowCount------------接收受影响的行数
insert into filerevert(fre_content, fre_f_id,fre_u_id,fre_reverttime) values(@name,@id,@uid,GETDATE())--插入语句
set @count=@count+@@error
set @num= @@RowCount+@num
end
if (@count<>0)----如果又错误,则@count是一个错误代码会不等于0
begin
set @num=0、/将受影响的行数回复为0,因为整个事务将回滚,回到初始态
rollback tran
end
else
commit tran-----提交事务
return @num----返回受影响的行数
在代码中就可以调用这个存储过程来了.