为MS SQL Server设计,生成和版本数据库模式脚本的最佳方法是什么?

时间:2015-01-21 16:12:26

标签: sql sql-server ssms

我从来没有真正看到任何问题(答案)如此普遍,所以我希望得到一些有用的反馈。我问的原因是因为我以前做过所有这些并且我有自己的方式,但有时我觉得这不是最好的做法。

让我们举个例子,我买不起更好的数据库建模工具,我只有sql server和ms sql server management studio。我所做的是:

  • 我用mssms设计,我的db中的所有实体(表,主键,外键,索引等)
  • 然后我在mssms中使用'Generate Scripts ...'命令生成模式脚本。生成的脚本相当大(使用sql server express 2012),似乎没有很好地组织维护。
    示例:在设置了所有表创建脚本之后,会有一堆ALTER TABLE命令来添加所有约束。这种事情似乎在表创建脚本部分会更好,也许不是。另外,对于升级能力,我通常会为每个表创建部分添加“IF NOT EXISTS”,这样当我需要在使用new更新数据库时重新运行sql脚本时它不会引发错误表格,栏目等。
  • 然后,对于版本控制,我通常会运行一个单独的脚本来在db本身的VERSION表中添加模式版本(只有一行)。
    这允许我在运行脚本时通过添加'if new-version>来进行增量升级。当前版本的东西。

过去似乎对我有所帮助,但它似乎有点,我不知道,不是很复杂。一位SQL专家可以对这个问题有所了解吗?这是我们所有人为我们创建的每个数据驱动的Web应用程序所做的事情,一遍又一遍。我想看看其他开发者是如何做到的。

回顾

  1. 你如何设计你的数据库模型并生成脚本(你是用设计工具做的,从头开始写等等吗?),
  2. 如何管理增量数据库随时间的变化?
  3. 您如何控制数据库版本?

1 个答案:

答案 0 :(得分:2)

SQL Server数据工具非常适合这种情况。它具有您需要的所有设计功能和可配置的脚本。它还将区分两个数据库并为您生成更改脚本。哦 - 而且它是免费的!