从一个数据库的视图到另一个数据库的一个表的数据传输
我只是想知道这是否是正确的方式来完成这项任务。 任何其他建议,以改善这是非常感谢。从一个数据库的视图到另一个数据库的一个表的数据传输
我在我的SSIS包中有以下内容。
- 数据流任务,并建立了一个OLE DB连接到源数据库所在的视图。
- 执行SQL任务 - 我正在执行一个查询,其中包含一个INSERT INTO Destination Except(所有那些已经存在的记录)。
- 发送邮件任务是发送一封电子邮件。
如何知道数据传输成功?这样我可以使用发送邮件到 表示成功或失败。
如何使其自动运行调度这个包(每星期二)
我曾尝试下面的建议。请参阅新的数据流任务。
OLE DB源 - 指向数据库服务器1 查询视图从OLE DB源获取的所有行。 (来源和查找中的rowcount) 匹配。
在查找任务上,我配置了错误输出以在所有映射列上使用“重定向行”。 。
在OLE DB目标(它已经具备了从源头上记录的子集目标表所以配置错误输出得到unmatches行的插入
的时候,我执行包 - 我得到一个主键约束错误的 - 无法插入重复键
任何建议
你会想双击从Execute SQL Task
到Send Mail Task
连接器目前,它是绿色的指示将只需要在成功这条道路。?。你会想要更新缺点如果成功或失败,你不关心完成。
听起来像你有你的数据流从你的源拉动所有的数据并写入临时表。在您的执行SQL任务中,然后使用查询将数据添加到目标表中不存在的位置。
这可以合并到单个数据流中。在您的OLE DB源和OLE DB目标之间添加查找任务。自2005年以来,Lookup的行为与2008+相比有所不同。您将编写一个查询,将您的目标表中的业务密钥拉回来,然后将其与您的OLE DB源的内容进行比较。在界面中映射这些键。
您只需要不匹配的行,因此您需要从查找中获取“不匹配的记录”。在2005年,不匹配的输出选项不存在,因此您需要将错误输出路由到您的OLE DB目的地。
Andy Leonard对如何实现这一点有一个很好的小写作:Configuration an SSIS 2005 Lookup Transformation for a Left Outer Join你的情况唯一的区别是你不关心匹配的行。而不是Ignore Failure
,你想选择Redirect Row
。然后,当您将Lookup连接到OLE DB目的地时,您将看到两个选项。绿色连接器是匹配的,红色连接器是不匹配的行。将红色路径捆绑到您的目的地
谢谢!在数据流选项卡中 - 我现在有一个OLE DB源(源数据库和来自视图的数据),查找(从源查找视图数据)和OLE DB目标(包含目标数据库和表) - 由于此SSIS包将每周执行一次,我只想要传输不匹配的记录。我无法理解“将错误输出路由到您的OLE DB目标。”任何能够帮助我配置的链接例子都很棒。我感谢您的支持。 – kalls
我更新了文章的描述和链接 – billinkc
感谢您的链接和文章。我仍然有这个问题。当您提到“您将编写一个查询,将您的目标表中的业务键撤回,然后将其与您的OLE DB源中的业务键进行比较,然后在界面中映射这些键”我如何实现这一目标?我能够获得源代码和查找任务进行编译(以绿色显示),并且目标由于主键约束而失败。我正在查找OLE DB目的地的查找错误输出。我道歉,如果这仍然模糊。我非常感谢您的支持。 – kalls