演练:使用分部项目对数据库项目进行分区

可以使用分部项目将开发与数据库项目中的某些对象隔离。 通过将数据库拆分为分部项目,并限制对已导入分部项目中的对象的版本控制访问,可以防止用户无意中更改其不应更新的数据库项目的一部分。

可以导出任何对象或对象组作为分部项目。 例如,可能导出架构定义及其内容。 还可能按对象类型导出对象,同时将表放入一个项目,将视图放入另一个项目等等。

在本演练中,您将执行以下步骤:

  • 创建您的数据库中架构和两个表的定义所在的源数据库项目

  • 导出对象作为分部项目

  • 创建开发数据库项目

  • 将分部项目中的对象导入到开发项目中

  • 定义引用所导入对象的存储过程

  • 配置、生成和部署开发项目

系统必备

必须已安装 Visual Studio,并且对运行 SQL Server 的服务器具有写访问权限。

创建源数据库项目及其对象

如果已有包含架构和表的数据库项目,则可以使用该项目代替在演练的此步骤中创建的项目。

创建源数据库项目

  1. 在**“文件”菜单上指向“新建”,再单击“项目”**。

    将打开**“新建项目”**对话框。

  2. 在**“已安装的模板”下,展开“数据库”节点,然后单击“SQL Server”**。

    提示

    如果您使用的是 Visual Studio 专业版,请在“已安装的模板”下进行查看,依次展开“数据库”节点和“SQL Server”节点,然后单击“高级”

  3. 在模板列表中单击**“SQL Server 2008 数据库项目”**。

    提示

    如果目标部署数据库的 SQL Server 版本不同,则可以指定与您的 SQL Server 版本匹配的项目类型。

  4. 在**“名称”**中,键入 MySourceDatabase。

  5. 在**“位置”中,键入或浏览至要创建数据库项目的位置的路径,然后单击“确定”**。

    重要说明重要事项

    如果路径过长,则在此演练中稍后尝试导入分部项目时可能会收到错误。 可以使用较短的路径避免这些错误。

    此时即创建了数据库项目,并将其显示在**“解决方案资源管理器”**中。

    接下来将定义该架构中的架构和表。

定义架构

  1. 在**“视图”菜单上,单击“数据库架构视图”**。

  2. 展开**“MySourceDatabase”节点,展开“架构”节点,右击“架构”节点,指向“添加”,然后单击“架构”**。

    **“添加新项”**对话框打开。

  3. 在**“模板”列表中,单击“架构”**。

  4. 在**“名称”中,键入 Person,然后单击“添加”**。

    接下来将创建新架构中的表。

在 Person 架构中定义表

  1. 在**“架构视图”中,右击“Person”节点,指向“添加”,然后单击“表”**。

    提示

    为使本演练保持简洁,将不更新表定义。

    **“添加新项”**对话框打开。

  2. 在**“模板”列表中,单击“表”**。

  3. 在**“名称”中,键入 Contacts,然后单击“添加”**。

  4. 右击**“Person”节点,指向“添加”,然后单击“表”**。

    **“添加新项”**对话框打开。

  5. 在**“模板”列表中,单击“表”**。

  6. 在**“名称”中键入 StateProvince,然后单击“添加”**。

    接下来将导出 Person 架构及其对象。

导出对象作为分部项目

导出对象作为分部项目

  1. 在**“解决方案资源管理器”中,展开“架构对象”节点,然后展开“架构”**节点。

    此时将显示**“Person”**节点。

  2. 依次展开**“数据库级别对象”节点、“安全”节点和“架构”**节点。

    此时将显示**“Person.schema.sql”**文件。

  3. 右击**“Person”节点,然后单击“导出为分部项目”**。

    **“另存为”**对话框打开。

  4. 在**“文件名”中,键入 ExportedPersonSchema,然后单击“保存”**。

    记下保存分部项目的文件夹。

  5. 在**“文件”菜单上,单击“关闭解决方案”。 如果提示您保存对解决方案的更改,请单击“是”**。

    接下来将创建一个项目,从中要开发引用 Person 架构中表的存储过程。

创建开发数据库项目

创建开发数据库项目

  1. 在**“文件”菜单上指向“新建”,再单击“项目”**。

    将打开**“新建项目”**对话框。

  2. 在**“已安装的模板”下,展开“数据库”节点,然后单击“SQL Server”**。

    提示

    如果您使用的是 Visual Studio 专业版,请在“已安装的模板”下进行查看,依次展开“数据库”节点和“SQL Server”节点,然后单击“高级”

  3. 在模板列表中单击**“SQL Server 2008 数据库项目”**。

    提示

    如果目标部署数据库的 SQL Server 版本不同,则可以指定与您的 SQL Server 版本匹配的项目类型。

  4. 在**“名称”**中,键入 MyDevelopmentDatabase。

  5. 在**“位置”中,键入或浏览至要创建数据库项目的位置的路径,然后单击“确定”**。

    此时即创建了数据库项目,并将其显示在**“解决方案资源管理器”**中。

    接下来将导入在前一过程中导出的分部项目。

导入分部项目中的对象

导入分部项目

  1. 在**“解决方案资源管理器”中,右击“MyDevelopmentDatabase”项目节点,然后单击“导入分部项目”**。

  2. 在确认对话框中单击**“是”**。

  3. 在**“打开”**对话框中,浏览到包含从 MySourceDatabase 导出的分部项目的文件夹。

  4. 单击**“ExportedPersonSchema.files”文件,然后单击“打开”**。

    此时项目经过卸载和重新加载,并在**“解决方案资源管理器”**中显示名为 MySourceDatabaseBasePath 的文件夹。

  5. 展开**“MySourceDatabaseBasePath”**文件夹。

    此文件夹包含从源数据库导出的文件。

    接下来将定义引用在 Person 架构中定义的表的存储过程。

定义引用所导入对象的存储过程

定义简单的存储过程

  1. 在**“视图”菜单上,单击“数据库架构视图”**。

  2. 在**“架构视图”中,展开“MyDevelopmentDatabase”节点,然后展开“架构”**节点。

  3. 右击**“Person”节点,指向“添加”,然后单击“存储过程”**。

    **“添加新项”**对话框打开。

  4. 在**“名称”中,键入 uspCountContacts,然后单击“添加”**。

    此时该存储过程即添加到项目中,并显示在 Transact-SQL 编辑器中。

  5. 在 Transact-SQL 编辑器中,按以下内容更新代码:

    CREATE PROCEDURE [Person].[uspCountContacts]
    AS
    SELECT COUNT(*) FROM [Person].[Contacts]
    
  6. 在**“文件”菜单上,单击“全部保存”**。

    接下来将配置开发数据库项目,生成该项目,然后将其部署到目标数据库。

配置、生成和部署开发项目

配置、生成和部署开发数据库

  1. 在**“解决方案资源管理器”中,右击“MyDevelopmentDatabase”节点,然后单击“属性”**。

  2. 在属性页上,单击**“部署”**选项卡。

  3. 在**“部署操作”列表中,单击“创建部署脚本(.sql)并部署到数据库”**。

  4. 在**“目标数据库设置”下,单击“编辑”**。

  5. 指定与要部署此项目的目标服务器的连接,然后单击**“确定”**。

  6. 在**“文件”菜单上,单击“全部保存”**。

  7. 在**“解决方案资源管理器”中,右击“MyDevelopmentDatabase”** 节点,然后单击**“生成”**。

  8. 在**“解决方案资源管理器”中,右击“MyDevelopmentDatabase”节点,然后单击“部署”**。

    此时数据库即部署到指定的服务器。

后续步骤

部署包括 Person 架构、架构中定义的表以及存储过程。 现在可将项目添加到版本控制中,然后设置权限以限制哪些开发人员可以修改存储过程的定义。

请参见

概念

开始大型数据库的团队开发