我如何执行SP并根据它的结果执行另一个查询,如果失败则应该恢复SP已完成的操作?

时间:2010-01-05 12:22:34

标签: sql sql-server sql-server-2005

我认为这是一个基本的SQL问题...对不起......新闻......: - )

我想在其中执行一个SP

{

我想执行一个SP(使用EXEC)并根据它的结果我想执行另一个查询(INSERT),如果由于任何原因失败,应该还原SP所做的事情?

}

我该怎么做?

交易?如果是,怎么样?

请注意内部SP发送邮件。

1 个答案:

答案 0 :(得分:4)

这样的事情:

BEGIN TRAN

DECLARE @rc int

EXEC @rc = EXEC inner_proc

IF (@rc = 1)
   INSERT something

IF @@ERROR <> 0
    ROLLBACK
ELSE
    COMMIT