在处理多个测试环境或多台服务器时,管理工作变得更加复杂。与数据库变更相比,代码变更的管理相对容易,这得益于版本控制的可用性。对于数据库管理员(DBA)来说,跟踪所有变更并将其部署到多台服务器上是一项非常负责任的任务。这个过程容易出错,需要大量的测试。
在Visual Studio中使用SQL数据库项目之前,一直面临上述问题。可以非常容易地使用Visual Studio开发、管理、比较和部署数据库变更。还可以将所有数据库对象变更置于版本控制之下。
自VS.NET 2010版本以来,SQL数据库开发就已经存在于Visual Studio中,但在2013年,拥有了许多强大的功能。可以一键创建一个基于现有数据库的新数据库项目,或者从头开始创建一个数据库项目。现在,让看看如何从头开始创建一个数据库项目。稍后,将展示如何从现有数据库创建数据库项目。
要创建一个新的SQL服务器数据库项目,请打开“新建项目”对话框,然后从默认模板中选择SQL Server。在右侧窗格中,选择SQL Server数据库项目并提供项目名称。给项目命名为“ProjectTracker.Database”。
创建新数据库项目
一旦对项目位置和项目名称感到满意,点击确定。之后,项目将被创建。然后转到项目属性,从解决方案资源管理器中选择项目设置。将目标平台更改为将要部署变更的正确版本的数据库。就情况而言,选择的是SQL Server 2008。然后选择属性按钮下方的复选框,写着“创建脚本(.sql文件)”。还可以从数据库设置按钮更改数据库校对和其他设置。
项目属性
如果观察右侧面板中的SQL Server对象资源管理器,可以发现一个空白数据库被创建了,里面没有任何对象。
SQL Server对象资源管理器
从解决方案资源管理器中,可以像在Visual Studio中处理Web项目时添加页面一样添加对象,例如表、存储过程、函数、视图等。在这里,所有对象都将作为脚本文件添加到项目中。一旦添加了一个对象,可以检查它是否在SQL Server对象资源管理器下的相应节点中可用。
让添加一个新表,可以看到Visual Studio以两种方式打开表。将得到一个设计器视图,以及下面的T-SQL编辑器,其中包含创建它的DDL语句。可以更改其中任何一个,另一个将自动反映更改。如果在脚本中错误地进行了任何更改,它将立即向显示错误列表。
语法错误
编辑表
以相同的方式,可以添加其他数据库对象。使用数据库项目非常容易。一旦一切都完成了,可以像Web项目一样构建项目,然后将其发布到数据库服务器。
在数据库项目中创建的数据库可以轻松发布到服务器。从解决方案资源管理器中,右键单击项目并选择发布。从发布数据库对话框中,选择编辑连接字符串。从连接属性中,选择正确的目标服务器。一旦提供了所有详细信息,选择确定。现在测试连接可能无法工作,因为数据库尚未在服务器上创建。
选择目标数据库
发布数据库
如果想生成脚本并手动在服务器上执行,那么可以点击“生成脚本”按钮。它将创建数据库部署脚本,可以在服务器上执行。
如果点击发布按钮,Visual Studio将直接在目标服务器上创建数据库。所以请确保想要以哪种方式将数据库部署到服务器。使用高级按钮,可以选择许多其他选项来发布数据库,例如,重新创建数据库,在发布之前进行备份等。
数据库发布选项
这是数据库项目中每个人都会喜欢的一个非常酷的功能。在部署之前,可以比较本地开发数据库架构与目标服务器架构。这样,可以轻松地同步所有数据库版本。
从解决方案资源管理器中,右键单击并选择架构比较,它将要求选择源数据库和目标数据库。选择源数据库作为解决方案中的项目,目标数据库作为想要更新架构的数据库。一旦选择了这些,可以点击比较,它将显示两个数据库架构中的所有差异。从那里,可以选择差异,更改将显示在下面的窗口中。如果想一次性将所有更改移动到目标服务器,可以点击更新全部。否则,可以通过右键单击任何行并选择排除来排除一些更改。可以使用双向箭头按钮轻松在源和目标之间切换。如果想使用部署脚本将更改移动到服务器,那么可以点击生成脚本按钮。
比较数据库