“添加数据库引用”对话框
本主题说明您可在**“添加数据库引用”**对话框中执行的过程。
数据库引用允许您:
访问其他数据库中的对象。
项目可以使用由三部分或四部分组成的名称解析来引用任意服务器上的另一个数据库。将由三部分或四部分组成的名称用于引用时,您可以使用 SQLCMD 变量来使得引用在多个服务器和数据库上生效。创建多个数据库对象的复合解决方案。
在复合项目中,数据库引用将大的数据库分为几个独立项目。您创建不包含该数据库或服务器的变量或值的引用(只使用由一部分和两部分组成的名称)。
数据库引用可以指向当前解决方案中的数据库对象或指向 DACPAC。添加对某项目的数据库引用将更改项目依赖关系和生成顺序。
选择要引用的数据库
您可以引用同一解决方案中的另一个数据库项目,也可以引用系统数据库,或者是 DACPAC。
如果您的解决方案中有多个数据库项目,**“当前解决方案中的数据库项目”**就会被启用。您可以引用解决方案中的另一数据库。
如果您要选择某个系统数据库作为数据库引用,请选择**“系统数据库”**。
选择**“数据层应用程序(.dacpac)”**以引用 DACPAC 中的数据库,请,然后浏览到包含该 DACPAC 文件的目录。
选择数据库的相对位置
在选择要引用的数据库后,您可以指定数据库对象相对于引用项目的预期位置。
可以在以下位置之一为对象解析引用:
在引用数据库中。
在同一服务器上的其他数据库(不是引用数据库)中。
在不同服务器上的其他数据库(不是引用数据库)中。
请指定数据库名称。如果您选择**“系统数据库”,则不应修改系统数据库文字。如果您选择“当前解决方案中的数据库项目”**,则数据库默认名称会基于该项目中数据库的名称。
如果您选择了**“不同数据库,不同服务器”**,请指定服务器名称。
您可以使用 (SQLCMD) 数据库变量。如果您要使用变量(而非文字名称)引用数据库,可接受或修改默认数据库变量。如果您从多个服务器和数据库发布数据库对象,就会需要用到数据库变量。因为在这种情况下,开发人员可以转到项目属性页中的**“SQLCMD 变量”并指定数据库的本地名称。如果您将“数据库变量”**留空,则只能使用数据库的文字名称来引用数据库。如果指定数据库变量名称,则不能使用文字名称来引用数据库。
如果您选择了**“不同数据库,不同服务器”,就必须使用 (SQLCMD) 服务器变量。如果您从多个服务器和数据库发布数据库对象,就会需要用到服务器变量。因为在这种情况下,开发人员可以转到项目属性页中的“SQLCMD 变量”**并指定服务器的本地名称。您只能使用该变量(而不能使用服务器名称)来引用服务器。
![]() |
---|
在某些情况下,您可以创建与现有数据库引用同名的数据库引用。同名的两个数据库引用可能导致意外的行为。在这种情况下,请将这两个数据库引用都删除。 |
通用过程
以下是通用过程:
创建对同一服务器上数据库的引用
在解决方案资源管理器中,右键单击**“引用”,然后选择“添加数据库引用”**。
在**“添加数据库引用”对话框中,指定“数据库位置”为“不同数据库,同一服务器”**。
指定数据库的名称。
确定是否要使用数据库变量。
复制示例用法并将它粘贴到您的 .sql 文件。在示例用法中,将 [Schema1] 更改为您的架构的名称(例如 [dbo])。还要根据项目需要修改数据库对象名称。
生成解决方案。
创建对另一服务器上数据库的引用
在解决方案资源管理器中,右键单击**“引用”,然后选择“添加数据库引用”**。
在**“添加数据库引用”对话框中,指定“数据库位置”为“不同数据库,不同服务器”**。
确保数据库名称是正确的。
确定是否要使用数据库变量。
指定服务器的名称和服务器变量。
复制示例用法并将它粘贴到您的 .sql 文件。在示例用法中,将 [Schema1] 更改为您的架构的名称(例如 [dbo])。还要根据项目需要修改数据库对象名称。
生成解决方案。
创建复合项目
在解决方案资源管理器中,右键单击**“引用”,然后选择“添加数据库引用”**。
选择您要引用的数据库的源(解决方案中的项目或 DACPAC)。
在**“添加数据库引用”对话框中,指定“数据库位置”为“同一数据库”**。
复制示例用法并将它粘贴到您的 .sql 文件。在示例用法中,将 [Schema1] 更改为您的架构的名称。还要根据项目需要修改数据库对象名称。
生成解决方案。
发布此项目时,您可以将同一解决方案中的复合项目部署到一个目标中:
在**“解决方案资源管理器”中,右键单击项目名称,然后选择“发布”**,以显示“发布数据库”对话框。
在**“发布数据库”对话框中,单击“高级”**。
在**“高级发布设置”对话框中,确保在“高级部署选项”列表中选中了“包括复合对象”**。