所以我有两台服务器。 SER1,SER2。 SER1是我应该复制数据并将其放入SER2的那个。
此外,我在SER2上有很少的存储过程需要执行,然后将所需的结果放回SER1上的不同表中。
现在,我还需要2个存储过程。 1.将基本数据从SER1复制到SER2,将其他数据从SER2复制到SER1。
问题:
答案 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?