2016-11-22 8 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] 

Когда я пытаюсь построить PROJE кар, он выбрасывает ошибку:

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] находится в той же базе данных (по имени DBMAIN) как [synMerchCats]. Вы хотите сказать, что я должен создать локальную переменную SQLCMD в проекте DBMAIN базы данных и использовать ее в качестве префикса также для взаимозависимых определений объектов (например, обсуждаемого синонима и представления), которые являются источниками в одной базе данных DBMAIN? –