如果源表包含DateTimeCreated和DateTimeUpdated列,那么更新目标表的最有效方法是什么?在源表中给出DateCreated和DateUpdated列的更新目标表
-1
A
回答
1
我想保持源目标在同步避免 截断。我正在寻找一个在这种情况下的投注练习模式
我会避免一个最佳做法的答案,但给予足够的细节,作出适当的选择。有与您可能会更新在SSIS表主要有两种方法,避免了TRUNCATE - LOAD:
1)使用OLEBD COMMAND
这是一个好方法,如果:
- 你有一个可靠的DateTimeUpdated列,
- 不会有太多的行更新,
- 有没有很多的列更新
- 有在T并不多添加的列他的数据流(即派生列转换)
- 并且更新语句非常简单。
此方法执行很差,因为它执行逐行更新。依赖审计日期列可以是减少要更新的行数的好方法,但如果在源系统中更新行并且未更改审计列,它也会导致问题。我建议只有信任它,如果它有触发器,或者你可以确定没有人可以在表上执行更新。
此外,当存在大量需要映射的列或数据流中发生大量转换时,此组件出现短缺。例如,如果您要将所有字符串列从unicode转换为非unicode,那么您可能会在组合中添加许多其他列,这会使映射和维护变得非常痛苦。该组件中的映射工具适用于大约10列,之后它开始非常快速地产生混淆。尤其是因为你映射到编号参数而不是列名。
最后,如果您在更新语句中执行任何复杂的操作,它更适合于SQL代码,而不是将其维护在没有智能感知的组件编辑器中,而且通常很难使用。
2)阶段的数据和数据流
这种方法适合所有的理由,OLEDB命令是坏的,但有一些缺点后执行执行SQL任务的更新。还有更多的代码维护:
- 一对夫妇的T-SQL任务,
- 一个进程
- 和一个临时表
这也意味着需要花费更多的时间来建立以及。但是,它的表现非常好,代码更易于阅读和理解。持续的维护也更简单。
请参阅从这个其他问题,我今天发生的事情来回答关于同一主题我的笔记:SSIS Compare tables content and update another
相关问题
- 1. SQL - 表设计 - dateCreated会和DateUpdated列
- 2. Silverlight列表框项目源更改没有更新列表
- 3. 更新目标表
- 4. 从给定的面额列表和目标值创建更改
- 5. 如何动态更新目标列表?
- 6. 输出列不在目标表中?
- 7. Mysql:从源表更新记录到目标表
- 8. PL/SQL - 从源表中的一行更新目标表中的多个行
- 9. 更新列表中的项目
- 10. 更新列表框项目
- 11. 更新列表框项目
- 12. MVC更新列表项目
- 13. 更新c项目列表#
- 14. 使用列作为单个更新查询的源和目标
- 15. Silverlight列表框不会更新与新项目源
- 16. 在脚本中检索源表和目标表名
- 17. 数据源更改时更新列表视图项目
- 18. 更新列表的列表
- 19. SQL - 更新一个表,使得列求和给出另一列的关键
- 20. 更新:您无法在FROM子句中指定目标表'表'进行更新
- 21. 更新列表中的元素列表?
- 22. 更新列表中的列表
- 23. 在c#中更新列表#
- 24. Sql Server中的DateCreated列?
- 25. 用于更新给定一个列表的列表
- 26. SugarCRM的 - 在目标列表
- 27. 给出一个列表的列表
- 28. C#列表框更新项目更改
- 29. fullcalendar with resourceDay,更新资源列表
- 30. 如何更改DateCreated列的时区?
按日期?你能否形成更具体的问题?这与SSIS有什么关系? – 2015-02-10 14:16:39
真的很容易。我想保持源目标在同步避免截断。我正在寻找这种情况下的投注练习模式。 – cs0815 2015-02-10 14:27:36