Неразрешенная ссылка в проекте базы данных Visual Studio 2012

Есть ли способ сослаться на другую базу данных из моего проекта базы данных без прямой ссылки на нее?

Например, я хочу иметь возможность написать что-то вроде этого:

CREATE VIEW View1
AS
  SELECT X FROM OtherDB.dbo.Table1

person aron    schedule 19.06.2013    source источник


Ответы (1)


Лучше всего добавить ссылку на базу данных в свой проект. Для VS2010 и более ранних файлов DBProj вам потребуется создать файл dbschema и добавить его в качестве ссылки на базу данных. Для SSDT вам понадобится файл dacpac. Это хорошо работает для проектов, которые в основном статичны, и вы даже можете адаптировать их, чтобы включать только релевантные объекты.

VS2010, 2008 — http://msdn.microsoft.com/en-us/library/dd193283%28v=VS.90%29.aspx содержит документацию, необходимую для экспорта существующей базы данных в файл dbschema. Поместите его туда, где ваш проект может получить к нему доступ, и добавьте его как «Справочник по базе данных».

SSDT — http://msdn.microsoft.com/en-us/library/hh550080%28v=VS.103%29.aspx содержит ссылку на командную строку для создания файла dacpac. После создания поместите его туда, где ваш проект может получить к нему доступ, и добавьте его в качестве ссылки на базу данных.

У меня есть сообщение в блоге об этом для SSDT здесь: http://schottsql.blogspot.com/2012/10/ssdt-external-database-references.html

person Peter Schott    schedule 19.06.2013
comment
да, я знаю об этих параметрах, но я просто хотел создать представление без какой-либо проверки. я думал должен быть способ отключить эту ошибку - person aron; 20.06.2013
comment
Вы можете отключить предупреждения об отсутствующих объектах, но вы не сможете выполнить развертывание без ссылки. Вы также можете добавить его как сценарий после развертывания, но он не будет отображаться как то, что вы можете использовать в своем проекте таким образом. - person Peter Schott; 20.06.2013
comment
Как отключить предупреждения? - person Mike K; 14.11.2014
comment
Я пытался создать DACPAC из контекстного меню задач в SSMS для этой базы данных, и он продолжал терпеть неудачу. После нескольких дней ручного импорта базы данных с десятками тысяч объектов я наткнулся на ваш ответ здесь и попробовал инструмент командной строки. Работал как шарм! Теперь интересно, почему это сработало, а подход SSMS — нет. - person Mike K; 14.11.2014
comment
Хотел бы я знать наверняка, но я выполнял подобные упражнения, пока не понял, что командная строка просто работает. :) Рад, что у вас теперь есть рабочая ссылка. И помните, что это просто переименованный ZIP-файл, если вам когда-нибудь понадобится отредактировать его, чтобы настроить что-то, хотя, когда у вас есть рабочая сборка, вы можете просто использовать dacpacs из сборок. - person Peter Schott; 14.11.2014