2015-01-19 5 views
0

В проекте базы данных DB2 имеет ссылки на DB1. Когда я делаю dacpac из DB1 и добавляю ссылку на dacpac в DB2, тогда проект компилируется без ошибок.Проект базы данных: ссылки на базы данных не работают

Поскольку DB1 и DB2 находятся в одном решении, я пытаюсь добавить ссылку базы данных вместо ссылки на dacpac. Поскольку DB1 и DB2 могут находиться на разных серверах с разными именами в производстве, я добавил $ (параметры) для баз данных и серверов. Проект не компилируется:

Error 1069 SQL71561: Вид: хуг имеет неразрешенный ссылку на объект [$ (сервер)] [$ (имя_бд)] [someschema] [sometable]....

Параметры установлены правильно. Я упустил что-то, что касается ссылок на базы данных?

+1

Вы пытались отключить параметр для использования параметра сервера? Это может облегчить устранение неполадок. –

+0

Спасибо, это привело меня в правильном направлении и к простому ответу ... – TvdH

ответ

1

Прежде всего, чтобы убедиться, что сами проекты установлены правильно. У вас есть проект в решении для DB1. У вас есть проект в решении для DB2.

Чтобы начать с чистого листа (часто проще всего с помощью ссылок на базу данных - вы не можете легко редактировать свойства после добавления ссылки). Удалите все существующие ссылки на базу данных DB1 из проекта DB2.

Выполняйте чистое решение. Build DB1 (Убедитесь, что DACPAC был создан для DB1 в \ bin \ debug и т. Д.) И исправить любые ошибки, если это необходимо.

В DB2 добавить ссылку базы данных на элемент решения. Щелкните правой кнопкой мыши ссылку «Ссылки», выберите «Добавить ссылку базы данных». В раскрывающемся списке выберите первый элемент (проект базы данных в текущем решении). Выберите DB1.

Внизу выберите «Различная база данных, разные серверы» в раскрывающемся списке. Введите переменные снова. Убедитесь, что пример использования внизу указывает «SELECT * FROM [$ (server)]. [$ (Dbname)]. [Schema1]. [Таблица1] '(или аналогично в зависимости от вашего выбора имен переменных). Обратите внимание на этот образец и скопируйте его в заметку или клип.

Это должно решить проблемы. Вы уже изменили представления \ procs для ссылки на переменные.

Я думаю, что самое легкое правило здесь, если вы не уверены, удалите ссылку и добавьте ее снова. Нет простого способа редактировать имена переменных и т. Д. Кроме того, если сборка DB1 завершилась неудачей, вы все равно получите ссылочные ошибки, как указано выше.

1

Я не заметил, что ссылочные проекты баз данных в моем решении не компилировались в Visual Studio из-за ошибок компиляции. После составления проектов, на которые делается ссылка, были также использованы ссылки на эти проекты.

Возможность извлечь dacpac в Visual Studio не является указанием на то, что проект компилируется; при извлечении dacpac непосредственно из базы данных внешние ссылки этой базы данных будут действительны, тогда как проект базы данных должен быть предоставлен с этими ссылками в первую очередь.

+0

Верно, но мне пришлось извлечь dacpacs, прежде чем просто _get_ проекты для компиляции и сборки (ссылки на базы данных).Как только они так построены, я часто могу заставить остальных работать без особых проблем или хотя бы сосредоточиться на основных проблемах. –