KISS在SQL实例之间复制表列表的方法吗?

时间:2015-05-20 18:21:39

标签: sql-server architecture ssis etl

我的主应用程序具有夜间SSIS作业,可将一些(不是全部)数据从生产服务器移动到各种测试和开发服务器。

这些工作没什么特别的。他们删除目标表并从源重新填充它。混合中有许多表和4或5个服务器,有很多外键,但一切都是SQL到SQL,没有合并或查找。

使用SSIS来做到这一点已被证明是非常脆弱的。当新的应用程序版本更改架构时,超过一半的时间,作业开始失败。为什么?更新由开发人员完成,并且不同的开发人员已经对包进行了数十次调整和更改,并且通常在开发周期的关键时刻发生SSIS更改。

我发现SSIS可能是也可能不是正确的工具。对于简单的表副本,SSIS非常臃肿。 (列映射等)有更好的方法吗?理想情况下,它只是作为输入(最好来自中央来源):

  • 无序的表格列表(仅支持完全匹配列命名)
  • 源服务器
  • 目标服务器

然后简单地说:   - 在指定的服务器上按计划开始执行。   - 引用对列表进行排序(不违反FK约束)   - 以引用顺序删除/截断所有目标表   - 以引用顺序将表从源复制到目标   - 报告成功或失败。

列表中唯一具有挑战性的事情(我认为)将是一种很好的低维护方式来安排工作和工作报告成功或失败。

[注意:我不是在寻找技术细节。我只是在寻找一种较低维护,不那么脆弱的方法来实现这些数据移动。我将下面的初步想法作为一种可能的解决方案发布,但如果有更简单的解决方案,我会非常高兴。]

1 个答案:

答案 0 :(得分:0)

您可以删除表,并使用“传输SQL Server对象任务”复制表,而不是截断表和复制数据,这将包括DDL更改。

请注意,您必须相应地处理外键。