exec(@strInsSqlA)--插入主表数据 exec(@strInsSqlB)--插入子表数据 IF (@@ERROR=0) COMMIT TRAN ELSE ROLLBACK TRAN=========>改为: declare @err1 int,@err2 int exec(@strInsSqlA)--插入主表数据 set @err1=@@error exec(@strInsSqlB)--插入子表数据 set @err2=@@error IF (@err1=0 and @err2=0) COMMIT TRAN ELSE ROLLBACK TRAN
--or if @flag = 1 begin exec(@strDelSqlB)--删除子表数据 exec(@strDelSqlA)--删除主表数据 end
exec(@strInsSqlA)--插入主表数据 exec(@strInsSqlB)--插入子表数据 ===>改为: if @flag = 1 begin exec(@strDelSqlB+' '+@strdelsqla) end
exec(@strInsSqlB)--插入子表数据
IF (@@ERROR=0)
COMMIT TRAN
ELSE
ROLLBACK TRAN=========>改为:
declare @err1 int,@err2 int
exec(@strInsSqlA)--插入主表数据
set @err1=@@error
exec(@strInsSqlB)--插入子表数据
set @err2=@@error
IF (@err1=0 and @err2=0)
COMMIT TRAN
ELSE
ROLLBACK TRAN
if @flag = 1
begin
exec(@strDelSqlB)--删除子表数据
exec(@strDelSqlA)--删除主表数据
end
exec(@strInsSqlA)--插入主表数据
exec(@strInsSqlB)--插入子表数据
===>改为:
if @flag = 1
begin
exec(@strDelSqlB+' '+@strdelsqla)
end
exec(@strInsSqlA+' '+@strinsqlb)