Sql server SQL Server:升级数据库

Sql server SQL Server:升级数据库,sql-server,upgrade,Sql Server,Upgrade,我们有一个使用Microsoft SQL Server数据库的产品。我们有客户使用各种旧版本的产品 在这种情况下,人们如何编写/构建他们的数据库升级脚本?您需要一套版本来发布补丁脚本。在具有实时数据的生产系统上,这有点棘手,因为您可能还必须在这些脚本中操作数据 是生成这些脚本或在脚本上执行QA功能的一个很好的工具(显然,您不应该对这两个角色都使用它)。因为您有实时客户数据,所以必须对升级进行回归测试 我认为没有一个简单的方法可以做到这一点。您必须开发脚本并测试它所做的任何数据操作。从一个版本到另

我们有一个使用Microsoft SQL Server数据库的产品。我们有客户使用各种旧版本的产品


在这种情况下,人们如何编写/构建他们的数据库升级脚本?

您需要一套版本来发布补丁脚本。在具有实时数据的生产系统上,这有点棘手,因为您可能还必须在这些脚本中操作数据

是生成这些脚本或在脚本上执行QA功能的一个很好的工具(显然,您不应该对这两个角色都使用它)。因为您有实时客户数据,所以必须对升级进行回归测试

我认为没有一个简单的方法可以做到这一点。您必须开发脚本并测试它所做的任何数据操作。从一个版本到另一个版本进行测试,以获得一些有用的升级集。这里的关键是安排一个生产镜像测试环境,在将修补程序应用到实时系统之前,您可以在该环境中测试修补程序


另外,在实际运行修补程序脚本之前,不要忘记在生产数据库上进行备份和测试还原,但您已经知道;-}

我们有一个SQL脚本,可以进行干净的安装和升级。安装SQL Express或完整SQL server后,我们将运行以下脚本:

  • 如果CREATE TABLE中不存在表,则创建这些表
  • 删除并重新创建所有存储过程
  • 对表格进行修改,如字段更改、字段添加等
  • 我们一直在扩展这个脚本,所以每个版本只会添加到这个SQL脚本文件中。这意味着我们可以在生产系统上运行该脚本,将其更新为最新的模式。在新安装中使用该脚本从头开始创建模式


    通过这种方式,我们可以保证升级脚本将最旧的安装升级到最新版本。

    您如何处理不断更新此脚本的问题?如果您必须查看最初的表创建,然后是一组列插入,可能分布在下面的一组脚本中,这是否会使阅读变得困难呢?不,我从不查看原始表创建。我只是根据我的最新版本进行修改。所以我在每次构建之后只添加了几个修改。