如何:将更改部署到新数据库或现有数据库

更新:2007 年 11 月

对数据库项目进行更改后,必须通过运行生成脚本将这些更改部署到数据库服务器。生成生成脚本时,会将数据库项目架构与项目属性中指定的目标数据库进行比较。如果目标数据库存在,则除非您选择总是重新创建数据库,否则会创建一个更新脚本。如果目标数据库不存在或者您选择总是重新创建数据库,则生成脚本会创建一个数据库。如果上次生成或部署之后数据库项目、其属性或其内容已经更改,则下次部署项目时会生成最新的生成脚本。

重要说明:

在生成或部署数据库项目前,必须设置项目属性,指定目标数据库连接和数据库名称。如果使用“新建数据库项目向导”生成数据库对象,则可能已经指定了项目属性。您可以随时更改项目属性。有关更多信息,请参见如何:为生成和部署配置数据库项目

将数据库项目部署到新数据库或现有数据库

  1. 在“解决方案资源管理器”中,单击要部署的数据库项目。

    如果创建了自定义配置,则可以通过在“标准”工具栏上的“解决方案配置”列表中单击其名称指定应使用该配置。在默认情况下,您只有一个用于数据库项目的配置,并且该配置已经选中。

  2. 在“生成”菜单上单击“部署”。

    即会生成数据库项目的生成脚本(如果该生成脚本不存在或者不是最新版本),然后对它进行部署。“输出”窗口显示部署结果,如下所示:

------ 生成已开始: 项目: DatabaseProject,配置: 默认任意 CPU ------

正在生成 目标数据库名称 的部署脚本: EnableFullTextSearch 和 BlockIncrementalDeploymentIfDataLoss

DatabaseProject --> file:///项目驱动器:/Documents%20and%20Settings/用户名/My%20Documents/Visual%20Studio%202005/Projects/解决方案名称/DatabaseProject/sql/DatabaseProject.目标服务器名称_目标实例名称.目标数据库名称.sql

------ 部署已开始: 项目: DatabaseProject,配置: 默认任意 CPU ------

正在将脚本 项目驱动器:\Documents and Settings\用户名\My Documents\Visual Studio 2005\Projects\解决方案名称\DatabaseProject\sql\DatabaseProject.目标服务器名称_目标实例名称.目标数据库名称.sql 部署到服务器目标服务器名称\目标实例名称

file:///项目驱动器:/Documents%20and%20Settings/用户名/My%20Documents/Visual%20Studio%202005/Projects/解决方案名称/DatabaseProject/sql/DatabaseProject。目标服务器名称_目标实例名称。目标实例名称.sql --> 服务器:“目标服务器名称\目标实例名称”,数据库:“目标数据库名称”

========== 生成: 1 成功或最新,0 失败,0 被跳过 ==========

========== 部署: 1 成功,0 失败,0 被跳过 ==========

从命令行将数据库项目部署到新数据库或现有数据库

  1. 打开“命令提示”窗口。

  2. 浏览到您的项目目录。

  3. 在命令提示符处,键入以下示例命令行以创建生成脚本,其中 DatabaseProject 是项目的名称:

    MSBuild /t:Build DatabaseProject.dbproj

    说明:

    MSBuild.exe 必须位于 PATH 环境变量指定的路径。此外,必须在数据库项目中或作为命令行的一部分指定 TargetDatabase 和 TargetConnectionString。有关创建生成脚本的命令行语法的更多信息,请参见数据库生成和部署概述

    将会显示类似下面的结果:

Microsoft (R) Build Engine Version 3.5.20418.0

[Microsoft .NET Framework, Version 2.0.50727.1318]

Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 5/3/2007 2:27:39 PM.

__________________________________________________

Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (Build target(s)):

Target SqlBuild:

Building deployment script for 目标数据库名称 : EnableFullTextSearch, BlockIncrementalDeploymentIfDataLoss

. DatabaseProject --> file:///项目驱动器:/Documents%20and%20Settings/UserName/My%20Documen

ts/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.目标服务器名称_目标实例名称.目标数据库名称.sql

Build succeeded.

0 Warning(s)

0 Error(s)

Time Elapsed 00:00:05.01

  1. 在命令提示符处,键入下面的示例命令行以部署在步骤 3 中生成的生成脚本:

    MSBuild /t:Deploy DatabaseProject.dbproj

    将会显示类似下面的结果:

    Microsoft (R) Build Engine Version 3.5.20418.0

    [Microsoft .NET Framework, Version 2.0.50727.1318]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/3/2007 2:27:39 PM.

    __________________________________________________

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\DatabaseProject.dbproj" (Deploy target(s)):

    Target SqlDeploy:

    Deploying script 项目驱动器:\Documents and Settings\UserName\My Documents\Visual Studio 2005\Projects\SolutionName\DatabaseProject\sql\DatabaseProject.目标服务器名称_目标实例名称.目标数据库名称.sql to server 目标服务器名称\目标实例名称

    file:///项目驱动器:/Documents%20and%20Settings/UserName/My%20Documents/Visual%20Studio%202005/Projects/SolutionName/DatabaseProject/sql/DatabaseProject.目标服务器名称_目标实例名称.目标数据库名称.sql --> Server:"目标服务器名称\目标实例名称", Database:"目标数据库名称"

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:02.56

部署到多个数据库或多台服务器

您可以将架构部署到多个数据库或多台服务器。如果要部署到不发生变化的少量服务器或数据库(例如,希望既部署到个人开发服务器上又部署到临时服务器上),则可以创建多个生成配置。每个生成配置都可以有一个不同的目标服务器或数据库。如果需要部署到大量服务器上或者目标服务器或数据库的名称会定期更改,则应当使用另一种方法。下面介绍了这些方法。

创建部署到多台服务器或多个数据库所用的多个生成配置

  1. 在 Visual Studio Team System Database Edition 中打开数据库项目。

  2. 在“生成”菜单上单击“配置管理器”。

    将出现“配置管理器”对话框。

  3. 在“活动解决方案配置”列表中,单击“<新建>”。

    即会出现“新建解决方案配置”对话框。

  4. 在“名称”中,键入第一个服务器配置的名称。

  5. 如果您的项目属性已配置为“默认”配置,请在“从此处复制设置”列表中单击“默认”。

  6. 单击“确定”。

  7. 在“活动解决方案配置”列表框中,单击“<新建>”。

    即会出现“新建解决方案配置”对话框。

  8. 在“名称”中,键入第二个服务器配置的名称。

  9. 如果您的项目属性已配置为“默认”配置,请在“从此处复制设置”列表中单击“默认”。

  10. 单击“关闭”。

  11. 在“解决方案资源管理器”中右击数据库项目并单击“属性”。

  12. 单击“生成”选项卡。

  13. 在“配置”中,单击第一个服务器配置的名称。

  14. 修改目标连接和数据库的名称,使其与第一个服务器配置相匹配。

  15. 在“配置”中,单击第二个服务器配置的名称。

  16. 修改目标连接和数据库的名称,使其与第二个服务器配置相匹配。

  17. 在“文件”菜单上,单击“保存选定项”保存配置设置。

    现在您可以在“标准”工具栏上指定配置,然后生成或部署该配置。

从命令行部署到数据库

  • 在命令提示窗口中,通过键入以下命令行来部署生成脚本(请将生成脚本名称、服务器名称和目标数据库名称替换为相应的值)。

    MSBuild /t:Deploy /p:TargetDatabase=目标数据库名称 /p:BuildScriptName=您的生成脚本.sql 数据库项目名称.dbproj

    说明:

    若要部署到多台服务器,必须通过在命令提示窗口中指定如下内容来重写目标连接字符串属性:/p:TargetConnectionString="Data Source=服务器名称;Integrated Security=True;Pooling=False"。

安全性

必须具有创建数据库(用于新部署)以及创建、修改和删除该数据库中的架构对象的必要权限才能部署数据库项目。

请参见

任务

如何:准备数据库生成脚本

概念

数据库生成和部署概述

数据库项目设置概述

Database Edition 术语概述

其他资源

演练(创建并更新受版本控制的数据库架构)