绕过SQL Server中的错误

时间:2014-03-23 19:14:45

标签: sql-server

在SQL Server中向表中插入多行时,如果出现错误,我该如何记录该错误并继续通过绕过该错误插入下一条记录?

1 个答案:

答案 0 :(得分:1)

当所有插入一次运行时(例如insert into ... select),数据库实现ACID,其中一个组件(A,Atomicy)意味着(根据{{3}) }):

  

原子性要求每笔交易都是"全部或全部"

这意味着您必须在单个语句中分离您的操作,在SQL Server中这是单个事务(另一方面,在Oracle中,由于它在默认情况下在一个事务中运行所有后续查询,因此仍然无法运行)。

您可以创建单独的插入语句,并将每个语句放在Wikipedia

样品:

-- first
begin try
    insert into ...
end try
begin catch
    -- log error
end catch; 

-- second
begin try
    insert into ...
end try
begin catch
    -- log error
end catch;