Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更新SQL Server数据库架构?_Sql_Sql Server_Sql Server 2008_Schema - Fatal编程技术网

如何更新SQL Server数据库架构?

如何更新SQL Server数据库架构?,sql,sql-server,sql-server-2008,schema,Sql,Sql Server,Sql Server 2008,Schema,通常在项目的整个开发过程中,我会经常部署,以确保在生产过程中不会出现任何问题 此外,在整个开发过程中,我发现自己在更改数据库的模式 如何在生产中轻松更新数据库 我一直在删除旧数据库并重新连接新数据库。是否有更快的方法更新部署数据库 谢谢 编辑 有哪些免费工具可用于此目的?维护应用于开发人员数据库的所有更改脚本的列表,并在部署时将其应用于生产数据库 或者,使用第三方工具来比较这两个模式,并提供一个changescript,然后您可以运行它。我尝试使用这样的工具来显示两个版本之间的“差异”,并实际编

通常在项目的整个开发过程中,我会经常部署,以确保在生产过程中不会出现任何问题

此外,在整个开发过程中,我发现自己在更改数据库的模式

如何在生产中轻松更新数据库

我一直在删除旧数据库并重新连接新数据库。是否有更快的方法更新部署数据库

谢谢

编辑
有哪些免费工具可用于此目的?

维护应用于开发人员数据库的所有更改脚本的列表,并在部署时将其应用于生产数据库


或者,使用第三方工具来比较这两个模式,并提供一个changescript,然后您可以运行它。

我尝试使用这样的工具来显示两个版本之间的“差异”,并实际编写出不同的组件。您还可以将编写所有数据库修订的脚本作为一种习惯,以便对所做的更改进行审核跟踪,并在准备部署时以编程方式应用这些更改。

您最好的选择是将更改作为一组差异脚本来实现。所以,您不用删除一个表并重新创建它,而是将脚本设置为ALTERTABLE


还有一些工具可以帮助你做到这一点。如果您保留原始数据库和新数据库的副本,您可以针对这两个数据库运行一个工具,该工具将生成SQL,将您从一个版本转换到另一个版本。

我个人喜欢随时更新完整的创建脚本,以及维护升级脚本,只要我更改特定版本的架构。我使用了Red Gate SQL Compare,这是一个非常好的工具,但我更喜欢保留脚本。

生成脚本向导正是我所需要的。

始终编写脚本来更改架构。将脚本放在升级文件夹中,以便在升级更改时执行脚本以更改每个环境。

是一个非常棒的数据库版本控制工具。使用迁移后,很难再手动跟踪脚本并进行数据库比较。

Visual Studio数据库版。它将源代码脚本中的整个模式与其他代码一起置于源代码控制之下。当您进行更改时,它可以分析您的模式的依赖关系。它可以运行最佳实践分析。它可以生成一个.dbschema文件,部署工具可以使用该文件将数据库升级到当前模式

实际上,您可以通过continuos集成将其自动化,并直接构建到测试环境、暂存环境甚至生产环境。这意味着,当您签入测试分支时,构建机器将构建产品,运行构建验证测试,并将其部署到您的开发服务器上。当您从测试分支反向集成到主分支时,构建机器构建产品,运行BVT,并在您的临时测试/验收服务器上部署。当您集成到发布分支中时,构建机器将构建、测试并最终部署到生产环境中。现在是真的,没有多少组织准备走那么远,让continuos构建过程自动部署在实时生产服务器上,我认为这是一种激进的想法。但我认为您应该更信任您的自动化BVT和自动化流程,而不是任何手动测试和部署

试试DBSourceTools

它是开源的,将为整个数据库编写脚本
-将表、视图、过程和数据存储到磁盘,然后允许您通过部署目标重新创建该数据库。

它是专门为帮助开发人员将其数据库置于源代码控制之下而设计的。

+1很好的答案。我甚至没有想到。优秀的产品。喜欢红门比较,尽管还有其他应用。不过,要考虑的最大问题是RealGATE的依赖性顺序将无法帮助您手动解析。Red GATE的SQL比较将按依赖性顺序命令脚本,否则它是一个bug!在SQL Compare 9.5中,现在有一个新的“迁移”功能,允许您自定义工具的默认行为+1维护更改脚本集合确实是最好的方法。在开发环境中创建它们。将它们部署到测试中以确保它们按预期工作,然后将它们部署到生产环境中。虽然您可以使用SQL compare,但我认为最好在运行时编写自己的更改脚本。如果您坚持使用GUI(Management Studio),则可以选择在保存更改时让它自动生成更改脚本。@RobinDay如何维护更改脚本列表?我经常使用GUI而不是脚本来更改数据库。您能详细说明一下吗?你能计算出两个相似但又不同的数据库之间的差异吗?对不起,这篇文章发表已经好几年了,所以我不能详细说明。我问这件事时有点生疏。我成功地使用了RedGate工具,但最近我非常喜欢Chuck Norris框架中的RoundHouse。