【发布时间】:2015-07-22 14:44:31
【问题描述】:
我正在准备一个 SSIS 作业,我正在将 .CVSV 文件导入到 OLE DB 目标(sql 数据库)。我们将每天获取这些文件。 .CSV 文件包含医生的记录。每行代表一个医生。下图显示了我如何能够成功地做到这一点。到目前为止没有问题。
以下是我需要帮助的地方:
如果医生不再活跃,我们将获得相同的 .CSV 文件,但没有他/她的记录。如何检查记录是否不在 .CSV 文件中但它存在于 SQL 数据库中?我需要更新 SQL 数据库中的医生行并将该行的 IsActive 字段更新为 false。
【问题讨论】:
-
我们在我工作的地方处理这个确切的问题,我们用纯 SQL 来解决它,我们尽量避免像这样使用 SSIS。我们只需导入表,然后对我们的跟踪表执行所需的连接,以确定护理提供者是否是新的/更新的/终止的。对我们来说,SSIS 部署越少越好,因此我们的目标是将尽可能多的业务逻辑放入数据库中。
-
嘿@saarrrr 我正在尝试按照您的方式进行操作。我创建了一个临时表,我在其中转储 csv 文件。现在正在处理合并语句。
-
Eric 的伪代码是正确的,尽管您也可以使用左连接来实现对您希望捕获更改的所有字段的单个语句更新。我还建议存档更新记录的先前状态,特别是如果您有不同的认证和身份办公室。他们可能会为改变而竞争,并知道谁改变了重要的东西。
标签: sql sql-server database excel ssis