В следующей статье объясняется, как использовать ссылочные переменные в проекте базы данных.http://msdn.microsoft.com/en-us/library/bb386242.aspx
Это необходимо, когда вы ссылаетесь на базу данных, которая не находится в том же решении (см. Первую диаграмму, вторую строку).
В моем случае, вероятно, у меня будетотдельные решения для каждой отдельной бизнес-среды (внутренние приложения, внешние приложения, склад и т. д.).Каждое из этих решений будет иметь несколько баз данных.Но базы данных должны будут ссылаться на базы данных, которые не находятся в одном и том же решении (например, во внутренней БД могут быть хранимые процедуры, которые извлекают данные из внешней БД).
В этом случае, я думаю, лучшее решение - обратиться к файлу .dbschema, который создается при сборке проекта.Вы можете настроить ночную сборку для каждого проекта и сделать так, чтобы выходные данные сборки были скопированы в определенную папку общего диска.Затем вы можете указать любой проект базы данных на схему любой другой базы данных, добавив ссылку на базу данных (описанную в статье выше) в .dbschema (на общем диске) для базы данных.
Если вы хотите сделать его более сложным, вы можете изменить шаблон сборки, чтобы скопировать необходимые файлы .dbschema из выходных данных сборки в каждый проект и проверить их.
В случае, еслибаза данных не имеет проекта и активно не изменяется, потребуется создать временный проект базы данных для базы данных, чтобы вы могли создать файл .dbschema.Затем встроенный файл .dbschema может быть возвращен в зависимый проект, и вам не придется создавать его снова, пока он не изменится.
Я приложу все усилия на примере ...
Проблема : ABC проекта зависит от хранилища данных и проекта XYZ.Project XYZ находится под управлением исходного кода в другом решении, но хранилище не находится под управлением исходного кода.
Решение :
- Создание ночной сборки для проекта XYZ
- Настройка выходного каталога сборки для перехода на общий диск
- Создание настраиваемого шаблона сборки для проекта ABC, который скопирует файл XYZ.dbschema в проект ABC и отметит его в
- В проекте ABC щелкните правой кнопкой мыши «Ссылки на базу данных» и добавьте ссылку на XYZ, указав файл XYZ.dbschema (вместо проекта базы данных XYZ, который находится за пределами решения)
- Создатьссылочные переменные для проекта XYZ (не уверен, что это необходимо…)
- Заменить ссылки на XYZ в сохраненных процедурах и представлениях ссылочными переменными, созданными на предыдущем шаге (не уверен, что это необходимо…)
- Теперь ссылки в ABC на XYZ должны разрешиться.
- Создайте новый проект базы данных (это может быть временный, одноразовый проект)t)
- Получить его из хранилища (щелкните правой кнопкой мыши проект и выберите «Импорт из базы данных»)
- Создайте проект
- Скопируйте файл Warehouse.dbschemaиз результатов сборки в проект ABC
- В проекте ABC щелкните правой кнопкой мыши «Ссылки на базу данных» и добавьте ссылку на файл Warehouse.dbschema
- Создание ссылочных переменных для хранилища
- Замените ссылки на Хранилище ссылочными переменными
- Теперь ссылки в ABC на Хранилище должны разрешиться.
Я не знаю, будет ли это работать так же, какэто, но это теория.Надеюсь, это поможет ...