如何重复多步模式更改(ETL 模式更改?)

How to repeat multi-step schema change (ETL schema changes?)

我是 DBA 的新手,不是什么 SQL 人,所以请温柔点。

我想重构需要添加新列、表和关系然后删除旧表、列和关系的数据库。三个步骤的过程似乎是有序的。

  1. 更改架构以添加新内容
  2. 运行 SSIS 使用一些旧数据连接新数据。
  3. 更改架构以删除旧内容。

我在 VS 2015 中使用 SQL 数据库项目来维护架构,并使用架构比较来更新数据库架构。如果可能的话,我想让它可重复或自动进行,这样我就可以在非生产数据库上对其进行测试以使流程正确:更改模式->运行 ETL->更改模式。有没有一种方法可以从 ETL 中应用模式更改,或者这是否需要手动操作?有没有办法将两个模式存储到文件中然后应用它们,而不是 VS 发布或比较?

有一个 SQL 任务可以让你做你想做的事。您想要更改 table(添加列),将数据从旧列移动到新列,然后删除旧列。

1) Alter table tableA add column ..
2) update table tableA set ..
3) alter table tableA drop column...

请在 运行 之前仔细测试您的代码。

成功了!这是 ETL 的示例。 请注意,将数据流的 DelayValidation 设置为 true 并为数据流中的某些操作禁用 ValidateExternalMetadata 很重要,因为数据库不是静态的。