SQL Server数据库中,存储过程里怎么用事务?(50分)

  • 主题发起人 主题发起人 nywjx
  • 开始时间 开始时间
N

nywjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我要写一个存储过程,内容如下:
CREATE PROCEDURE 删除固定卡
@CardNo int
AS
delete from 卡号索引表
where 卡号=@CardNo
delete from 固定卡有效期表
where 卡号=@CardNo
delete from 固定用户表
where 卡号=@CardNo
GO

可是如果我在从卡号索引表中删除记录的时候出错,会产生什么结果?
我怎么使用事务的机制来避免这种结果的发生?
 
CREATE PROCEDURE 删除固定卡
@CardNo int
AS
begin tran
delete from 卡号索引表
where 卡号=@CardNo
if @@error<>0
begin
rollback tran
return -10//自己定义好判断-10
end
delete from 固定卡有效期表
where 卡号=@CardNo
if @@error<>0
begin
rollback tran
return -20//自己定义好判断-10
end
delete from 固定用户表
where 卡号=@CardNo
if @@error<>0
begin
rollback tran
return -30//自己定义好判断-10
end
else
begin
commit tran
return 1
end
GO
 
谢谢,不过你这个-10、-20、-30和最后的1在程序中要用吗?
 
这就是你的存储过程的返回值,ADOStroedProc的第一个参数,得到后可以知道在那里出错了.
 
好的,谢谢,我试试,如果没问题,马上散分。另外帮我看看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1232609
 
多人接受答案了。
 
后退
顶部