数据库项目设置概述

更新:2007 年 11 月

数据库项目设置可控制数据库和生成配置的各个方面。这些设置分为以下几个类别:

  • 项目设置

  • 生成事件

  • 数据库属性

  • 文件组

  • 引用

  • 生成

  • 变量

项目设置、生成事件和数据库属性存储在数据库项目中,并通过版本控制共享。

说明:

用户特定的设置存储在 .dbproj.user 文件中。项目特定的设置存储在 .dbproj 文件中。

项目设置

这些设置将应用于此数据库项目的所有配置。

字段

默认值

说明

项目版本

在创建数据库项目时指定的 SQL Server 的版本。

指定针对此数据库项目使用的 Microsoft SQL Server 的版本。

默认架构

dbo

指定在其中创建添加到数据库的对象的默认架构。更改一个或多个对象定义时,可以重写此设置。

在文件名中包含架构名

指定文件名是否将架构作为前缀包括进来(例如,dbo.Products.table.sql),或者文件名是否仅为 对象名称.ObjectType.sql

启用全文搜索

指定是否对此数据库项目启用全文搜索。

重要说明:

如果选中此复选框,则不能在部署过程中同时选中“将数据库置于单用户模式”复选框。

启用 SQLCLR 集成

指定是否为与此数据库项目关联的数据库启用 SQLCLR 集成。

默认排序规则

SQL_Latin1_General_CP1_CS_AS

指定用于对此数据库项目中的数据进行排序和比较的默认规则。可以重写对象定义内的默认排序规则。

说明:

所有平台的默认排序规则都是相同的。系统不会为了与当前的区域设置相匹配而更改默认值。您必须手动将默认排序规则设置为适合于您的区域设置的排序规则。

说明:

因为若要更改默认排序规则,必须卸载并重新加载项目,所以更改项目的排序规则时,会显示一个对话框,要求您确认更改。单击“是”以响应卸载和重新加载项目的提示。

生成事件设置

可以使用这些设置来指定生成操作启动之前执行的命令行和生成操作完成后执行的命令行。

字段

默认值

说明

预先生成事件命令行

指定生成项目之前执行的命令行。单击“编辑预先生成事件”可以修改此命令行。

后期生成事件命令行

指定生成项目之后执行的命令行。单击“编辑后期生成事件”可以修改此命令行。

运行后期生成事件

生成成功时

指定后期生成命令行应始终运行、仅在生成成功后运行还是仅在生成更新项目输出(生成脚本)时运行。

有关如何编辑命令行的更多信息,请参见如何:指定预先生成和后期生成命令行预生成事件/生成后事件命令行对话框 (Database Edition)

数据库属性

可以使用此页面配置数据库属性。这里的所有属性都对应于 SQL Server 数据库的属性。有关这些属性的更多信息,请参见 数据库属性(选项页)(数据库属性(选项页))。

文件组

使用此页,可以修改数据库项目中文件组、文件和日志文件的定义。有关更多信息,请参见文件和文件组概述。这些定义通常引用在“变量”选项卡上定义的变量。

引用

使用此页,可以定义与跨数据库引用相关联的服务器变量和数据库变量。另外,还可以指定这些变量的值。有关更多信息,请参见跨数据库引用概述

生成设置

可以使用这些设置来影响生成脚本和目标数据库。这些设置特定于您指定的配置和平台,通常随用户的不同而不同。

字段

默认值

说明

生成输出路径

.\sql\

指定生成或部署数据库项目时产生生成脚本的位置。如果指定的是相对路径,则该路径是相对于数据库项目路径的路径。如果指定的路径不存在,则创建该路径。

自动生成生成输出文件名

未选中

基于项目的名称、目标数据库的实例名称、目标数据库的名称自动生成文件名。

生成输出文件名

数据库项目名称.sql

指定要为生成数据库项目时所生成的脚本赋予的名称。如果“自动生成生成输出文件名”复选框处于选中状态,则自动生成的文件名会覆盖您在该字段中指定的任何值。

目标连接

空白

指定要用作选定生成配置的目标的数据库服务器的连接信息。如果不指定目标连接,则将使用指定为设计时验证数据库的 SQL Server 2005 实例。

目标数据库名称

数据库项目名称

指定要在“目标连接”字段中指定的连接上创建或更新的数据库的名称。

目标数据库文件的默认位置

从目标服务器中检索默认位置。

指定目标服务器上应当在其中创建数据库文件的默认位置。如果您单击“刷新”,则可以从目标服务器检索默认位置。

部署排序规则默认值

空白

指定在目标数据库排序规则与数据库项目排序规则不匹配的情况下在部署过程中要使用的排序规则。如果您单击“使用服务器的排序规则”,则数据库项目将会更改,以便与目标数据库相匹配。如果您单击“使用源项目的排序规则”,则目标数据库将更新,以便与源数据库项目相匹配。如果您单击“不要编写排序规则脚本”,则两个排序规则都不会更改,但是部署可能会失败。

始终重新创建数据库

指定是否将删除并重新创建数据库,而不是执行增量部署。例如,如果您要对数据库的干净部署运行单元测试,则可能需要选中此复选框。如果清除此复选框,则将更新现有数据库,而不是删除并重新创建数据库。

如果可能发生数据丢失则阻止增量部署

指定在更新将造成数据丢失的情况下是否应停止部署。 如果选中该复选框,则可能会造成数据丢失的更改(例如,将 varchar(50) 列更改为 varchar(30))将出现错误,并停止部署,从而防止丢失数据。

说明:

只有当可能发生数据丢失的表中包含数据时,部署才会被阻止。如果没有可能丢失的数据,则部署将不会被阻止。

将警告视为错误

指定在出现警告时是否应取消生成和部署。如果清除该复选框,则当警告出现时,仍将继续生成和部署。

此设置是项目(而不是用户)所特有的,它存储在 .dbproj 文件中。

部署前备份数据库

指定在部署数据库之前是否应对其进行备份。如果清除该复选框,则不会自动执行备份。如果选中该复选框,则会在预先部署脚本中添加相应的语句来备份数据库。

说明:

备份操作可能会很慢。如果您是在独立开发环境中进行生成和部署,而不是要生成和部署到共享测试服务器、测试服务器或成品服务器,则您可能会决定不将备份数据库作为生成和部署数据库的一部分。

重要说明:

在部署到成品服务器之前,应始终备份数据库。如果不将自动备份数据库作为生成和部署过程的一部分,则应在部署更改之前手动备份数据库。

以单用户模式执行部署脚本

指定在部署过程中是否应将数据库置于单用户模式。如果您正在部署到共享数据库服务器,则应将数据库置于单用户模式,以防止其他用户在您部署数据库更改时对数据库进行更改。

重要说明:

如果数据库处于单用户模式,那么,一旦您将更改部署到该数据库中,当前与该数据库建立的其他所有连接都将断开。指定 ROLLBACK IMMEDIATE 子句的目的在于,在将数据库置于单用户模式下时,挂起的事务会立即终止。

说明:

如果您在数据库项目属性的“项目设置”选项卡上启用了全文搜索,则此选项将处于禁用状态。

添加或重命名列时执行“智能”列名匹配

指定在部署更新时是否应使用试探法确定何时重命名列,而不是执行 DROP 和 ADD 操作。试探法基于列的属性以及源列和目标列的名称。如果选中“始终重新创建数据库”复选框,该复选框将没有任何作用,因为会删除并重新创建数据库。

为目标数据库中存在而数据库项目中不存在的对象生成 DROP 语句

指定是否应将目标数据库中存在而数据库项目中不存在的对象作为部署脚本的一部分删除。如果要排除项目中的一些文件以将它们暂时从生成脚本中移除,您可能希望在目标数据库中保留这些对象的现有版本。如果选中“始终重新创建数据库”复选框,该复选框将没有任何作用,因为数据库会被删除。

不使用 ALTER ASSEMBLY 语句更新 CLR 类型

指定在部署更改时,是否使用 ALTER ASSEMBLY 语句来更新公共语言运行库 (CLR) 类型,或者是否将丢弃并重新创建实例化 CLR 类型的对象。

取消警告

空白

指定一个由禁止显示的警告编号组成的并且以逗号或分号分隔的列表。即使您选中了“将警告视为错误”复选框,禁止显示的警告也不会显示在“错误列表”窗口中并且不会影响生成的成功。

变量

使用此页,可以定义变量及其值,它们可以用在文件组和文件的定义中,也可以用在预先部署脚本和后期部署脚本中。这些设置是指定的配置和平台所特有的。

字段

默认值

说明

变量名

空白

可以用在文件组/文件的定义中或者预先部署/后期部署脚本中的变量的名称。当您在脚本中或对象定义中引用该变量名时,必须使用以下语法:[$(变量名)]。

变量值

空白

要针对当前配置和平台与该变量关联的值。

请参见

任务

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

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

演练:创建和部署受版本控制的新数据库

演练:将更改部署到受版本控制的现有数据库

如何:禁止显示一种或多种类型的警告

如何:为数据库项目定义变量

概念

数据库生成和部署概述

Database Edition 术语概述

其他资源

如何:为生成和部署配置数据库项目