Sql 如何执行SP并根据其执行';s result执行另一个查询,如果该查询失败,则应恢复SP已执行的操作?
我认为这是一个基本的SQL问题……对不起……新的问题……:-) 我想在其中执行一个SPSql 如何执行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 @
{
我想执行一个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
回降
其他的
犯罪
如果内部进程向某人发送邮件怎么办??它是否会被回滚?不过,说真的,处理这种情况的最好方法可能是在数据库表中对邮件进行排队,然后让后台进程加载并发送邮件。在这种情况下,邮件的插入将回滚。