Sql 如何执行SP并根据其执行';s result执行另一个查询,如果该查询失败,则应恢复SP已执行的操作?

Sql 如何执行SP并根据其执行';s result执行另一个查询,如果该查询失败,则应恢复SP已执行的操作?,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我认为这是一个基本的SQL问题……对不起……新的问题……:-) 我想在其中执行一个SP { 我想执行一个SP(使用EXEC),根据它的结果,我想执行另一个查询(INSERT),如果由于任何原因失败,应该恢复SP所做的操作 } 我该怎么做 交易?如果是,如何进行 请注意,内部SP会发送邮件。类似以下内容: BEGIN TRAN DECLARE @rc int EXEC @rc = EXEC inner_proc IF (@rc = 1) INSERT something IF @

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

我想在其中执行一个SP

{
我想执行一个SP(使用EXEC),根据它的结果,我想执行另一个查询(
INSERT
),如果由于任何原因失败,应该恢复SP所做的操作

}
我该怎么做

交易?如果是,如何进行

请注意,内部SP会发送邮件。类似以下内容:

BEGIN TRAN

DECLARE @rc int

EXEC @rc = EXEC inner_proc

IF (@rc = 1)
   INSERT something

IF @@ERROR <> 0
    ROLLBACK
ELSE
    COMMIT
开始传输
声明@rc int
EXEC@rc=EXEC内部程序
如果(@rc=1)
插入某物
如果@错误0
回降
其他的
犯罪

如果内部进程向某人发送邮件怎么办??它是否会被回滚?不过,说真的,处理这种情况的最好方法可能是在数据库表中对邮件进行排队,然后让后台进程加载并发送邮件。在这种情况下,邮件的插入将回滚。