【问题标题】:SQL DDL to support migration and updates支持迁移和更新的 SQL DDL
【发布时间】:2015-07-18 11:08:32
【问题描述】:

我有一个 web 应用程序,它使用基本的 ms-sql 数据库,只有表和约束没什么特别的。

每次我需要升级我的数据库架构时,我都会删除旧的架构,然后使用标准 DDL 脚本重新创建一个新的架构,其中包含许多创建表子句。

是否有任何模式可以让我编写我的 DDL 脚本,即使它在现有数据库上运行,它也会更新它而不会丢失所有存储的日期?

【问题讨论】:

  • 为什么要删除现有的架构?即使在不同版本的 sql server 之间迁移时,大部分架构也不应该发生变化。
  • 升级我的网络应用程序版本时需要它。我不是说我升级了sql server的版本。
  • 升级网络应用程序包括对数据库表的结构进行更改..但我所拥有的只是一个带有一堆创建表语句的 DDL 脚本..这没有考虑到我正在升级的现有数据库。
  • 这对我来说仍然没有多大意义。我可以理解更改和添加表、过程或视图,甚至删除其中的一些,但我真的不明白为什么需要删除整个架构。在我看来,这是一个糟糕的设计。
  • 没错。因此,我正在寻找一种将我的 DDL 脚本编写为累积脚本的方法,该脚本将对应用程序的版本升级进行所有必需的更改..

标签: sql sql-server sql-server-2008-r2 database-migration ddl


【解决方案1】:

您是否查看过数据工具(也称为 SSDT)?它是 Visual Studio 的一个插件,允许您拥有(除其他外)数据库项目。您以声明方式添加对象(即create tablecreate procedure 等),该工具会计算出如何使目标数据库看起来像 DB 项目中表示的模式。但是你还是要小心!该工具将允许您愉快地删除列、表、过程等。但是您绝对可以避免每次都删除和重新创建所有内容。

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 2021-11-15
    • 2019-10-31
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多