如何:创建跨数据库引用

更新:2007 年 11 月

若要在数据库项目中的另一个数据库中引用某个对象,则必须执行下列步骤:

  • 确保要引用的数据库有一个相关的数据库项目。有关更多信息,请参见如何:创建数据库项目

  • 在数据库项目中,为要引用的服务器和数据库以及它将要部署到的服务器各添加一个引用,并为该数据库及其服务器定义 SETVAR 变量。如果将包含该引用的数据库与要引用的数据库位于同一台服务器上,则不必为该服务器指定变量。

  • 在对象定义中,包括一个使用刚定义的 SETVAR 变量的跨数据库引用。

说明:

如果您创建或导入了一个包含跨数据库引用的架构,则必须更新它,使其通过 SETVAR 变量(而不是名称)引用服务器和数据库。否则,将在“错误列表”窗口中,针对其中的每个引用显示一个警告。之所以显示该警告,是因为在部署项目时,要引用的对象可能不存在。在将服务器和数据库的名称替换为 SETVAR 变量之后,可以使用数据库重构功能来更新这些变量的名称和值。

在数据库项目中添加引用

  1. 打开一个解决方案,该解决方案包含要向其中添加引用的数据库项目。

    有关更多信息,请参见如何:打开数据库项目

  2. 在“项目”菜单上单击“添加数据库引用”。

    将出现“添加数据库引用”对话框。

  3. 为数据库项目添加引用:

    1. 单击“当前解决方案中的数据库项目”。

    2. 在该列表中,单击要为其添加引用的数据库项目。

  4. 为图元文件添加引用:

    1. 单击“数据库项目图元文件 (.dbmeta)”[Database project metafile (.dbmeta)]。

    2. 在该框中,键入图元文件的路径和文件名,或者单击“浏览”指定要为其添加引用的图元文件。

  5. 为服务器定义 SETVAR 变量:

    1. 单击“定义服务器变量”。

    2. 在“名称”中,键入表示该服务器的变量名称。

    3. 在“值”中,键入该变量所表示的服务器名称。

  6. 为要引用的数据库指定 SETVAR 变量:

    1. 单击“定义数据库变量”。

    2. 在“名称”中,键入表示该数据库的变量名称。

    3. 在“值”中,键入该变量所表示的数据库名称。

  7. 如果您希望更新数据库项目中的架构对象和脚本,并将服务器名称和数据库名称替换为刚定义的变量,请选中“更新现有架构对象定义和脚本以使用数据库引用变量”复选框。

  8. 单击“确定”。

  9. 如果“更新现有架构对象定义和脚本以使用数据库引用变量”复选框处于选中状态,则将出现“预览更改 - 重命名服务器或数据库”对话框。

    1. (可选)如果您不想应用一个或多个更改,则可以在该列表中清除这些更改旁边的复选框。

    2. (可选)可以单击任何更改以便在“预览更改”窗格中显示该更改的详细信息。

    3. 单击“应用”更新已指定的架构对象和脚本。

      这些对象和脚本将修改为使用 SETVAR 变量(而不是刚指定的服务器名称和数据库名称)。

    该引用将添加到数据库项目中。

更新 SETVAR 变量的值

  1. 在“解决方案资源管理器”中,单击包含要更新的 SETVAR 变量的数据库项目。

  2. 在“项目”菜单上单击“项目名称 属性”。

    将出现“属性”窗口。

  3. 单击“引用”选项卡。

    将出现一个列表,其中显示所引用的全部数据库、这些数据库的服务器变量和数据库变量以及这些变量的值。

  4. 单击“编辑变量”。

    将出现“引用变量”对话框。

  5. 若要更新服务器的 SETVAR 变量值,请在“服务器变量值”中键入在部署数据库项目时要引用的服务器名称。

    说明:

    尽管您可以使用此方法来更新变量名称,但是此方法并不更新架构对象的脚本或定义中出现的这些变量。若要重命名对服务器或数据库的引用,请参见如何:重命名对服务器或数据库的引用

  6. 若要更新数据库的 SETVAR 变量值,请在“数据库变量值”中键入在部署数据库项目时要引用的数据库名称。

  7. 单击“确定”。

  8. 在“文件”菜单上单击“全部保存”。

在对象定义中包括跨数据库引用

  1. 在 Transact-SQL (T-SQL) 编辑器中打开对象定义。有关更多信息,请参见如何:创建数据库对象如何:修改数据库对象

  2. 在对象定义中,包括以下格式的跨数据库引用:[$(服务器变量名称)].[$(数据库变量名称].[架构].[对象名称]。

    当您生成和部署数据库项目时,这些变量的名称会替换为 SETVAR 变量值。

  3. 在“文件”菜单上单击“全部保存”。

请参见

任务

如何:重命名对服务器或数据库的引用

概念

数据库生成和部署概述

跨数据库引用概述

Database Edition 术语概述

其他资源

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