【问题标题】:Workarounds for ReadUncommitted Isolation level in an SSIS packageSSIS 包中 ReadUncommitted 隔离级别的解决方法
【发布时间】:2012-04-24 12:57:29
【问题描述】:

SSIS 中的 ReadUncommitted IsolationLevel 是 Microsoft 承认的以下错误,但“不会修复”,如下所述。

http://connect.microsoft.com/SQLServer/feedback/details/498891/ssis-setting-isolationlevel-to-readuncommitted-still-uses-read-committed#details

相同的解决方法是什么?

【问题讨论】:

    标签: sql sql-server ssis locking isolation-level


    【解决方案1】:

    是的,但是你必须在你的源上通知sql命令,而不是在执行之前选择一个表并设置隔离级别:

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    select * from test_isolation
    

    并且包应该选择了可序列化的隔离级别(我认为这个错误可能是在组件上选择了未提交的读取)

    请参阅此示例。我有一个包可以将值从表 test_isolation 复制到表 test_isolation_destination

    我的两张桌子都是空的:

    然后我开始了一个事务并运行下面的插入命令在test_isolation上插入一行

    此行是脏行,因为事务尚未提交。

    然后,我运行包,你可以看到复制了一行:

    然后,我回滚了事务,如您所见,该行已从源表中清除,但未从目标表中清除。

    这证明包以读取未提交的隔离级别运行

    【讨论】:

      【解决方案2】:

      使用 SQL Server Native Client Provider(如果您的目标平台是 MS-SQL)并设置隔离级别以查看它是否有效?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        • 2015-08-02
        • 1970-01-01
        • 2013-01-25
        • 2010-12-04
        相关资源
        最近更新 更多