【问题标题】:Import Excel Sheet to SQL Server, skip primary key violations将 Excel 工作表导入 SQL Server,跳过主键违规
【发布时间】:2012-04-24 20:04:36
【问题描述】:

我想将一个 Excel 文件导入到 SQL Server 中的表中。该表有 3 或 4 列组合成一个主键。我希望能够随时运行导入,如果与主键发生冲突,只需不导入该行,而是继续导入所有其他行。

我创建了一个 *.dtsx 文件,它可以很好地导入,但在找到重复键的那一刻就死了。有没有办法告诉 *.dtsx 文件在找到重复文件时继续,而不仅仅是死掉?我尝试打开 *.dtsx 文件,但没有太多选项,当我右键单击 *.dtsx 文件并选择编辑时,Visual Studio 打开并显示给我一些编辑 *.dtsx 文件的方法,但是我一点也不熟悉。非常感谢任何指导!

【问题讨论】:

    标签: excel sql-server-2008 ssis


    【解决方案1】:

    OleDBDestination 组件上有一个“检查约束”复选框,用于忽略 PK 等约束,但我认为它不会解决您的问题。

    理想的做法是在源组件和目标组件之间添加一个查找组件来检查数据库中是否已存在该行,如果不存在则仅插入。

    我知道您说过您不了解 SSIS,但这是您可能必须采用的方法。像这样创建\编辑一个简单的包一点也不难。 Here是论坛上的一个例子

    【讨论】:

    • 谢谢@Diego,你是对的,SSIS -> 查找组件原来是正确的。他们在那里有一个强大的功能,可以提供 2 个输出:匹配的记录和不匹配的记录。我所要做的就是稍微配置一下,然后将不匹配的记录流式传输到我的目的地。安静轻松,感谢您的帮助!
    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多