【发布时间】:2015-07-21 09:21:01
【问题描述】:
我有一个存储过程,其中有两个不同表的两个插入语句。
create procedure p_multiple_insert
(
// variable declaration
)
declare @temp int = 0;
begin try
begin
// insert statement for TABLE1
set @temp = 1;
if(@temp = 1)
begin
// insert statement for TABLE2
end
end
end try
begin catch
// insert into error table error_number() & error_message()
end catch
如果第一个插入语句块发生错误,@temp = 0。所以第二个插入块没有执行,数据也没有插入到 TABLE1 中。
但是如果在插入 TABLE2 时发生错误,我该如何回滚我的整个事务。我的意思是回滚第一个插入语句。
【问题讨论】:
-
我想这个问题就是你要找的:dba.stackexchange.com/questions/31279/…
标签: sql sql-server sql-server-2008 stored-procedures