我正在开发一个与SQL Server数据交互的C ++应用程序。
我使用存储过程在一个表中插入数据。
插入数据后,在几行代码之后,我会进行检查(只能在插入数据后才能执行此操作),如果检查失败,那么我想回滚以前的事务。请注意,我不想在此时删除数据。
是否有任何事务服务(带有两个存储过程),以便我可以调用第二个存储过程并回滚上一个事务。
简而言之,我需要的是两个存储过程的配对 - 第一个SP插入和第二个SP根据我的条件提交/回滚事务。有可能吗?
提前致谢,
答案 0 :(得分:1)
我认为最好的办法是创建一个开始和结束事务的主存储过程。
在伪代码中,类似这样:
CREATE PROCEDURE MASTERSP
AS
BEGIN
BEGIN TRANSACTION
EXEC FirstSP
EXEC @Result = SecondSP
IF @RESULT= -1
ROLLBACK
ELSE
COMMIT
END