如何重复多步架构更改(ETL架构更改?)

时间:2016-10-31 19:54:14

标签: sql sql-server database visual-studio database-schema

我是DBA的新手,而不是一个SQL人员,所以请温柔。

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

  1. 更改架构以添加新内容
  2. 使用一些旧数据运行SSIS以挂接新数据。
  3. 更改架构以删除旧内容。
  4. 我在VS 2015中使用SQL数据库项目来维护架构,并使用架构比较来更新数据库架构。我想让它可重复或自动,如果可能的话,我可以在非生产数据库上测试它以获得正确的流程:更改架构 - >运行ETL->更改架构。有没有办法从ETL中应用架构更改,还是需要手动操作?有没有办法将两个模式存储到文件中,然后应用它们,VS发布或比较除外?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

有效!以下是ETL的示例。 请注意,为数据流设置DelayValidation为true并为数据流中的某些操作禁用ValidateExternalMetadata非常重要,因为数据库不是静态的。

Example Control Flow that Modifies Schema