SQL Server回滚事务使用两个存储过程

时间:2014-08-13 01:02:54

标签: c++ sql-server stored-procedures transactions rollback

我正在开发一个与SQL Server数据交互的C ++应用程序。

我使用存储过程在一个表中插入数据。

插入数据后,在几行代码之后,我会进行检查(只能在插入数据后才能执行此操作),如果检查失败,那么我想回滚以前的事务。请注意,我不想在此时删除数据。

是否有任何事务服务(带有两个存储过程),以便我可以调用第二个存储过程并回滚上一个事务。

简而言之,我需要的是两个存储过程的配对 - 第一个SP插入和第二个SP根据我的条件提交/回滚事务。有可能吗?

提前致谢,

1 个答案:

答案 0 :(得分:1)

我认为最好的办法是创建一个开始和结束事务的主存储过程。

在伪代码中,类似这样:

CREATE PROCEDURE MASTERSP
AS
BEGIN
  BEGIN TRANSACTION
  EXEC FirstSP
  EXEC @Result = SecondSP

  IF @RESULT= -1 
      ROLLBACK 
  ELSE
      COMMIT 
END