【问题标题】:SSIS "Insert bulk failed due to a schema change of the target tableSSIS“由于目标表的架构更改,插入批量失败
【发布时间】:2017-08-21 14:05:40
【问题描述】:

我正在投标中开发 SSIS 包并收到不一致的错误 SSIS“插入批量失败,因为目标表的架构更改对于我的一个数据流不一致。有时成功,但有时也会失败,给出上述错误。

我不确定发生了什么。

下面是从oledb源调用的storedproc

CREATE PROCEDURE [dbo].[getPartiesIpoData_SSIS]

AS
BEGIN


    SELECT     
        c.companyId 'companyId', 
        tpf.transactionPrimaryFeatureName 'transactionPrimaryFeatureName', 
        os.statusdatetime 'statusdatetime', 
        st.statusName 'statusName'

    FROM ciqCompany c
        inner JOIN ciqTransOffering t 
            ON t.companyId = c.companyId
        JOIN ciqTransOfferToPrimaryFeat ttp 
            ON ttp.transactionId = t.transactionId
        JOIN ciqTransPrimaryFeatureType tpf 
            ON tpf.transactionPrimaryFeatureId = ttp.transactionPrimaryFeatureId
        JOIN ciqtransofferingstatustodate os 
            ON os.transactionId = t.transactionId
        JOIN ciqtransactionstatusType st 
            ON st.statusId = os.statusId AND st.statusId = 2

    WHERE tpf.transactionPrimaryFeatureId = 5 

    CREATE NONCLUSTERED INDEX IX_PartiesIpoData_companyId on CoreReferenceStaging.dbo.PartiesIpoData(companyId) with (DROP_EXISTING =on)
END

目标架构如下

SSIS中设置的oledb目的地如下

【问题讨论】:

  • 是否有与您的包同时运行的维护作业?
  • 不确定。我通过 SQL 作业运行这个包。它在 QA 中运行良好,但在 QA 中反复失败。但是,当我在 dev 上以调试模式运行时,它有时会在没有工作的情况下成功。那是我通过 IDE 运行的时候

标签: sql-server ssis


【解决方案1】:

以下是您可以尝试的一些行动计划,不过这对我有帮助。

1) 在运行前删除约束并在运行后重新创建它们

2) 禁用自动更新统计信息(以隔离问题)

3) 检查是否有任何并行索引重建发生。

4) 不使用“快速加载”选项进行检查

如果在实施上述更改后问题仍然存在,请在无法进一步调查时收集 Profiler 跟踪以捕获活动。

Check This

同时检查SQL Server Destination Adapter的设置

如果在实施上述更改后问题仍然存在,请收集 Profiler 跟踪以在 bcp 无法进一步调查时捕获活动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    相关资源
    最近更新 更多