Integration Services 学习(8):事务
事务,在数据库开发与应用中,发挥了重要的作用,但在 Integration Services 包开发
过程中,我们还一直没有提到过这个概念,它是不是还是如此,能让各数据库兄弟和睦相处,
团结一致,同进退、共存亡呢?
没错,哪里有 DB 活动,哪里就有 Transaction 参与,SSIS 包也不例外。
在 Integration Services 包中,数据库事务有以下几方面的功能:
(1)将几项任务的结果集收集到事务中,以确保数据一致的更新。
(2)确保对多台数据库服务器进行一致的更新。
(3)确保对不同种类数据库进行一致的更新,比如 Ms Sql Server 、Oracle、MySql
等.
(4)也可以在单个包中,执行几个相互独立的事务。
......
看来 Transaction 这东东,在 SSIS 包中,还功莫大焉。大家听起来,似乎是王婆卖瓜。
下面我们来看一看,如何在 SSIS 包中启用 Transaction ?
Integration Services 中的事务是基于容器的,包括包、For 循环、Foreach 循环、序列
容器等,如果容器启用了事务,默认情况下,该容器的子容器以及容器的组件对象,都自动继
承父级或者祖先级容器的事务。在这些容器中,都有一个共同的属性 TransactionOption,以
表明该容器是否支持事务。如图:
Required:指示该容器启用一个事务,如果其父容器启用了事务,则自动联接该事务;
相反,父容器没有启用事务,则该容器会启动自已的事务。
Supported:指示容器不启动事务,但是如果父容器启动了事务,它会自动联接该事务;
相反,父容器没有启动事务,它不会启动自已的事务。