我认为这是一个基本的SQL问题...对不起......新闻......: - )
我想在其中执行一个SP
{
我想执行一个SP(使用EXEC)并根据它的结果我想执行另一个查询(INSERT
),如果由于任何原因失败,应该还原SP所做的事情?
}
我该怎么做?
交易?如果是,怎么样?
请注意内部SP发送邮件。
答案 0 :(得分:4)
这样的事情:
BEGIN TRAN
DECLARE @rc int
EXEC @rc = EXEC inner_proc
IF (@rc = 1)
INSERT something
IF @@ERROR <> 0
ROLLBACK
ELSE
COMMIT