Проекты уровня данных и связанные серверы
Я пытаюсь использовать приложение уровня данных, включающее связанный сервер и сталкивающееся со странной проблемой.
Вот что у меня есть:
1) Решение VS2010, которое включает проект уровня данных.
2) Проект уровня данных ориентирован на сервер SQL 2008 R2.
3) У сервера SQL есть работающее связанное соединение сервера с базой данных Oracle.
4) Представления в проекте Data-Tier ссылаются на связанный сервер, используя OPENQUERY
Соединение с связанным сервером допустимо, выполнение запросов к нему на сервере работает нормально, и создание представлений непосредственно на сервере также работает нормально.
Однако всякий раз, когда я пытаюсь построить приложение уровня данных, я получаю следующую ошибку:
SQL03006: View: [dbo].[vwMyExampleView] has an unresolved reference to object [MyExampleLinkedServer].
2 ответа
В SQL 2012 просто добавьте новый элемент-> Объекты сервера - > LinkServer, добавьте sp-код, который создает сервер ссылок, и все готово
По сути, проблема в том, что проект базы данных SQL Server не имеет способа разрешить ссылку на таблицы базы данных Oracle.
У меня была похожая проблема при попытке сослаться на таблицу в другой базе данных на том же сервере. В моем случае я использовал SQL Server для обеих баз данных и создал проект базы данных для другой базы данных, добавил его в решение для первого проекта, а затем создал ссылку на второй проект из первого. Я также использовал переменные SQLCMD в синонимах, чтобы можно было изменить синоним, и все мои ссылки на proc и view не требуют обновления.
Я не уверен, что это будет работать между SQL Server и Oracle, поскольку редакция базы данных Visual Studio поддерживает только SQL Server. (AFAIK) Вы можете найти решение, создав файл.dbschema и добавив ссылку на базу данных в ваш проект SQL Server.
Более подробную информацию можно найти по этой ссылке: