2010-02-02 189 views
0

我在我的SSIS包的以下数据流任务:多个OLE DB SSIS交易指令

alt text http://img228.imageshack.us/img228/358/ssis1.png

它读取从具有记录与列“变”是cointains外部供应商提供的文件A,C或D用于添加,更改和删除。我必须在我的SQL Server数据库中处理这些数据。条件拆分检查更改列的值并将该行关闭发送到相应的命令。这工作正常。

由于输入文件有时包含错误,我想使这个过程事务化(有10个这样的数据流任务)。

如果我在SSIS包上启用事务,但OLE DB命令似乎互相干扰(它们不在同一行上操作)。我得到的错误:

Error: 2010-02-02 12:21:08.39 
    Code: 0xC0202009 
    Source: name OLE DB Command 1 [58] 
    Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. 
Error code: 0x80004005. 
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0 
" Hresult: 0x80004005 Description: "This operation conflicts with another pend 
ing operation on this transaction. The operation failed.". 
End Error 
Error: 2010-02-02 12:21:08.39 
    Code: 0xC004701A 
    Source: name SSIS.Pipeline 
    Description: component "OLE DB Command 1" (58) failed the pre-execute phase 
and returned error code 0xC0202009. 
End Error 
Progress: 2010-02-02 12:21:08.39 

我曾尝试有条件拆分的任何命令,所有的IsolationLevels的交易设置,但似乎没有任何工作。如果我使条件拆分只使用其中一个分支,它工作正常。 如何继续?

回答

1

正确的工具尝试用“OLEDB目的地”为刀片替换SQL Server的目标。

+0

是的,已经做到了。 – ArjanP 2010-02-05 15:27:36

1

SSIS是如此糟糕,这让我尖叫 - Seriosuly你应该revist SSIS是这里