【问题标题】:SSIS AutomationSSIS 自动化
【发布时间】:2018-10-05 02:51:26
【问题描述】:

我遇到了一个很好的 SSIS 和 SQL 问题。如何在 SSIS 中创建一个包,该包将在 Management Studio 中执行 SQL 查询并获取该查询的结果(查询结果是“插入 INTO 语句”)并将该插入运行到语句查询结果中进入 SSIS 中的另一个 sql 数据库,该数据库更新另一台服务器中的表? (第一个查询在一个数据库中运行,第二个查询在另一个数据库中运行)

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。请花时间阅读stackoverflow.com/help/how-to-ask
  • 到目前为止你尝试了什么?
  • 基本上这就是我想要包做的。一步执行sql任务。然后该步骤将存储结果并将第一个 sql 任务的结果用于第二个 sql 任务并在不同的数据库上运行它。数据流任务会是什么样子?两个“执行 Sql 任务”然后是一个“Ole DB 源?我正在尝试每天自动执行此步骤,而无需手动执行。
  • @BobOrdell 您能否在此处发布您提到的查询。当您说查询结果是“插入语句”时,可以解释为您想在一台服务器上运行一些动态 sql 查询并在另一台服务器上执行结果。这是你想做的吗?

标签: sql visual-studio ssis visual-studio-2017


【解决方案1】:

首先,sql 查询在数据库上执行,而不是在 management studio 上执行。 Management Studio 是用于配置、管理和管理数据库的可视化界面。

在我看来,这里根本没有任何问题。为每个 DB 创建一个连接管理器。然后创建两个“执行 SQL 任务”,将插入语句放入其中,使用您创建的连接管理器。

【讨论】:

    【解决方案2】:

    在执行 SQL 任务中运行第一个查询并将结果存储在字符串变量中。

    然后运行第二个执行 SQL 任务,使用该变量作为您的 SQL 命令。

    【讨论】:

    • 感谢您的回复。数据流会是什么样子?例如,两个“执行 sql 任务”后跟一个 ole db 源?另外,我如何将结果存储在字符串变量中并在第二个 sql 任务中使用这些结果?
    • 数据流看起来像一个执行 sql 任务,以及指向另一个执行 sql 任务的优先约束。如果你用谷歌搜索你的第二个问题,你会找到例子。
    【解决方案3】:

    为您需要的每个数据库、源和两个(或所有)目标创建连接管理器。

    创建数据流任务。

    在您的 OLEDB 源中,执行您的 SELECT 语句。

    将结果泵入 MultiCast 转换。这允许您将完全相同的结果集发送到多个目的地。

    为您要写入的每个表创建一个目标,并将它们连接到 MultiCast。

    鲍勃是你的叔叔。

    【讨论】:

    • 数据流会是什么样子?例如,我会从“ole db source”开始,然后从 Toolbox 中拖动 Multicast Transformation 和 OLE DB Destination?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2014-04-18
    相关资源
    最近更新 更多