0

我正在尝试构建的 ssis 包中的数据流任务有问题。该软件包的目的是通过 vpn 连接使用与包含数据源的远程服务器的连接来更新位于我们本地服务器中的表。

完全重新下载的表格没有问题。

但有些表必须真正更新。我的意思是他们没有重新下载。对于这些表中的每一个,我必须检查本地服务器中日期列的最大值(int YYYMMDD 类型),并要求包仅下载该日期之后添加的数据。

我考虑过使用标量(例如@MAXDATE),但问题是,我必须在与本地服务器的会话中声明此标量,并且我不能将其用作 OLE DB 源任务中的条件,因为后者意味着一个新的会话,这次是与远程服务器。

我只能查看远程服务器上的数据库并导入它。所以没有办法在上面创建一个表。

我希望它足够清楚。你有什么技巧可以解决这个问题吗?

先感谢您。

厄兹古尔

4

1 回答 1

0

您可以通过使用执行 SQL 任务、数据流任务和一个变量轻松完成此操作。我可能会添加一些错误检查,以防在本地系统上找不到任何值,但这在很大程度上取决于可能出现的问题。

假设VS2008

声明一个日期时间类型的包级变量。给它一个适当的默认值。

使用返回适当日期值的查询创建一个执行 SQL 任务。在属性窗口的第一页上,确保结果集设置为“单行”。在结果集页面上,将日期列映射到包变量。

创建数据流任务。在 OLE DB 数据源中,编写查询以包括传入日期值的问号。“和 MaxDate>?”。现在,当您单击“参数”按钮时,您应该会看到一个弹出窗口,允许您将“Parameter0”映射到您的包级别变量。

于 2013-05-20T22:12:10.033 回答