【发布时间】:2019-02-22 16:53:23
【问题描述】:
我的任务是在 SSIS 中创建工作流,它将每个表的数据从服务器 A 复制到服务器 B 中的相同表中。现在,我已经停止从 A 服务器获取数据并复制它到服务器 B。到目前为止,我已经创建了工作流程,步骤如下:
- 从 Excel 文件中读取数据,其中放置了要处理的表的名称
- 在目标数据库(服务器 B)中插入此行以备将来使用
- 在将上述步骤连接到下一个对象的控制流中 - 执行 SQL 任务,其中我将所有加载的名称从表中提取到名为“GlobalListOfTables”的全局项目变量中。
- 创建了另一个变量“localTable”,我在其中存储了“GlobalListOfTables”变量/集的每一行,我稍后会在“FOR LOOP”中使用它。
这里我已经停下来了,我想做的是:
- 在这个 LOOP 中,使用创建的“localTable”变量从每个表的源服务器获取所有数据,然后将这些数据插入到目标服务器中与“localTable”变量中相同的表名中。
最后一点 5 让我有点困惑,因为表格会彼此不同,所以没有一种表格敲击模式。
有人可以告诉我在 SSIS 中我应该如何做以及我应该从可用列表中采取哪些控制来实现第 5 点?
【问题讨论】:
-
在我看来,SSIS 可能是适合这项工作的错误工具。您是否研究过复制?
-
你需要复制数据库对象吗?对吗?
-
这是课堂作业还是工作场所作业?我问是因为在工作场所,依靠 Excel 工作表而不是系统表将是一个坏主意,并且使用 SSIS 来完成这项任务也是一个坏主意,所以这将带你走向一个方向。如果这是一项课堂作业,那么这些就是你所坚持的规则,我们可以专注于让错误的工具完成你需要它们做的事情。
-
最好的方法是将数据库从服务器 A 恢复到 B。您可以在 Ssis 包中编写一个简单的 sql 查询来执行此操作。然后您可以安排该包运行并且您拥有数据在目标服务器数据库的表中,但架构和数据库是相同的。如果您尝试使用不同的表方案插入一个全新的数据库,那么祝您好运。您需要向我们提供详细信息,例如表方案列所有这些内容。您还可以链接服务器并使用 sql 查询将其插入和调度为 sql 作业
标签: sql-server ssis etl