SSDT如何执行部署?

时间:2018-11-07 10:50:00

标签: sql-server-data-tools

我发现很难正确地处理SSDT项目中的数据移动,并且经常导致错误和部署失败。我们需要满足将其部署到不存在任何对象的空数据库,具有较旧模式的数据库以及托管数据库的RDS中的问题,这些问题使我们无法使部署自动删除从项目中删除的对象。因此,我们甚至需要允许到目前为止尚未清除的对象(尽管我们正在研究允许我们重新启用自动删除功能的更改)。

我认为部署前和部署后脚本通常使我们能够处理所需的所有数据移动,但是清楚地了解部署期间创建和启用对象的顺序将有助于正确使用脚本第一次。

以下是一些我有兴趣理解的例子。

  1. 何时评估目标数据库的架构?在执行预部署脚本之前?
  2. 何时创建各种类型的约束(检查,唯一,外键等)?它们何时启用?
  3. 重构日志中的重构有什么影响?
  4. 如何使用智能默认值来改善/简化部署脚本?
  5. 如何最好地利用这些知识来应对一些常见挑战?
    • 添加具有唯一约束的新列。
    • 将要替换的表中的数据移动到表中。
    • 等等。
  6. 在exec语句中是否可以使用动态SQL?我们为仅在对象已经存在的情况下才运行的脚本执行此操作。如果对象不存在,则脚本会出错。
  7. 在评估目标数据库模式之前,是否可以使用任何机制进行更改?预部署脚本似乎为时已晚?

0 个答案:

没有答案