SSIS:集成两台服务器

时间:2011-09-21 18:43:33

标签: sql ssis

所以我有两台服务器。 SER1,SER2。 SER1是我应该复制数据并将其放入SER2的那个。

此外,我在SER2上有很少的存储过程需要执行,然后将所需的结果放回SER1上的不同表中。

现在,我还需要2个存储过程。 1.将基本数据从SER1复制到SER2,将其他数据从SER2复制到SER1。

问题:

  1. 我应该在哪个服务器上进行这些存储过程?
  2. 我应该制作一个可以运行所有SP的SSIS包,所以SSIS包正在处理从SER1到SER2的数据复制? (我没有链接服务器)

2 个答案:

答案 0 :(得分:2)

是的,您可以在SSIS中没有链接服务器的情况下将存储过程作为数据源执行。但是,您不能在存储过程中使用临时表。我通过使用派生表或CTE得到了这个。 proc应该只是一个选择而不是一个动作过程。

您希望proc位于可以从SSMS运行它的位置。因此,如果它引用服务器a,数据库b中的表,那就是它需要的位置。

在SSIS中,您可以创建与您希望用作源或目标的每个数据库的连接。

然后创建数据流并使用包含要在OLE DB源连接中作为源连接运行的proc的数据库。将数据Accessmode设置为SQL Command并将exec statemenet设置为运行proc inteh SQL Command文本。如果您需要输入参数,请单击参数按钮来执行此操作。现在检查列选项卡。如果没有列显示,则存储过程需要调整以使其作为连接工作。

然后选择要将数据作为目标连接的数据库的连接。并告诉它什么表和映射。

答案 1 :(得分:0)

首先,你需要链接服务器,我不明白你的意思是“我没有链接服务器” - 你需要创建一个链接服务器。

对于1)您根据逻辑编写存储过程,如果您有两个服务器1和2,并且您希望将数据从服务器1复制到服务器2,则服务器1应逻辑上包含存储过程。是不是必须这样,绝对不是,它可以在服务器2上,但从逻辑上思考这个。

For 2)你需要一个链接服务器,你怎么能执行ServerName.DbName.Owner.Table?