Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SSIS中的源/目标之间同步数据插入更新删除_Ssis - Fatal编程技术网

如何在SSIS中的源/目标之间同步数据插入更新删除

如何在SSIS中的源/目标之间同步数据插入更新删除,ssis,Ssis,我是SSIS的初学者,我想知道一种在源/目标之间同步数据的简单方法,如: 插入-更新-删除数据。您可以使用合并联接和条件拆分组件实现插入Updet删除。 让我们考虑一下,在SQLServer中有一个表雇员作为您的数据源组件,表EffersSTG作为您在数据库中存在的数据的源数据组件: 数据库应用程序源中的数据: 您需要对这两个数据集进行排序,原因是合并联接组件需要按升序或降序对数据进行排序,因此我们将在SSIS中使用可用的排序组件按升序对数据进行排序: 这是排序组件的配置方式: 以下是合并

我是SSIS的初学者,我想知道一种在源/目标之间同步数据的简单方法,如:
插入-更新-删除数据。

您可以使用
合并联接和
条件拆分组件实现插入Updet删除。
让我们考虑一下,在SQLServer中有一个表<代码>雇员<代码>作为您的数据源组件,表EffersSTG作为您在数据库中存在的数据的源数据组件:

数据库应用程序源中的数据:

您需要对这两个数据集进行排序,原因是合并联接组件需要按升序或降序对数据进行排序,因此我们将在SSIS中使用可用的排序组件按升序对数据进行排序:

这是
排序组件
的配置方式:

以下是
合并联接
的配置方式:

合并数据后,您需要拆分数据,因为您执行了
左外部联接
如果数据匹配,则只有两侧的数据才会存在,否则右侧将被替换为空值,因此右侧具有空值的不匹配数据将被视为新数据,所以您将插入该数据,其余数据将按列匹配,就像位置为示例与左侧不匹配,您将对其进行更新

由于您已将数据拆分为3个部分,因此我们需要3个目标

1-根据第一个条件,将插入数据,因此为此,我们将使用
OLEDB目标组件

2-根据第二个条件,数据将被更新,因此为此,我们将使用
OLEDB命令组件
编写更新命令:

UPDATE Employees
SET FullName=?,
Position=?
WHERE EmployeeID=?
DELETE FROM Employees
WHERE EmployeeID=?
这是映射概述:

3-根据第3个条件,您将使用
OLEDB命令组件
删除暂存表中的记录,以写入更新命令:

UPDATE Employees
SET FullName=?,
Position=?
WHERE EmployeeID=?
DELETE FROM Employees
WHERE EmployeeID=?
这是映射概述:


谢谢你的回答,它帮助了我。我可以问你上述数据如何频繁流动。@EslamNano很抱歉,我不理解你的要求。我希望上述数据的生命周期在每5分钟后自动执行一次,可以吗?@EslamNano你可以问另一个问题并提供你需要的详细信息吗?好的,我会这样做。