2016-11-22 79 views
0

在Visual Studio 2013 Pro中,我创建了一个用于管理数据库模式更改的数据库项目。数据库项目优先级

在这个项目中,我已经添加了两个项目:

1的代名词DDL脚本,它是指到另一个数据库:

CREATE SYNONYM [dbo].[synMerchCats] 
    FOR spaceman_sys.[dbo].USR_CAT_CATEGORY 

2.视图DDL脚本,它是指到第1点的同义词脚本。

CREATE VIEW [dbo].[vwMerchCats] 
AS Select 
    CODE, 
    NAME 
From 
    [dbo].[synMerchCats] 

当我尝试构建项目CT,它抛出的错误:

Error 8 SQL71501: View: [dbo].[vwMerchCats] has an unresolved reference to object [dbo].[synMerchCats].[NAME]. Database c:\users\zienka01\documents\visual studio 2013\Projects\AsoBulkFiller\Database\Views\vwMerchCats.sql 4 3

我明白,鉴于无法识别在上一步中创建的代名词,但是我不知道为什么?是否有任何限制来自事实,即我正在跨两个不同的数据库采集对象?

您能否建议如何构建此项目以使其运行?

谢谢。

回答

0

您可以添加数据库引用并在引用名称的前面添加前缀;

CREATE VIEW [dbo].[vwMerchCats] AS Select CODE ,NAME From [$(ReferenceName)].[dbo].[synMerchCats]

它应该解决这个问题。

+0

[dbo]。[vwMerchCats]与[synMerchCats]源于同一个数据库(名为DBMAIN)。您的意思是我应该在数据库DBMAIN项目中创建本地SQLCMD变量,并将其作为前缀用于相同数据库DBMAIN中源的相互依赖对象定义(例如,同义词和视图)吗? –