У меня есть проект Visual Studio SSDT, в котором одно представление ссылается на связанный сервер через именование 4 частей. Я создал проект для базы данных на связанном сервере и создал ссылку из основного проекта на проект «связанный сервер», и все работает нормально.
Мне было поручено использовать OpenQuery вместо соглашения об именах из 4 частей, потому что на самом деле OpenQuery выполняется в 2-3 раза быстрее, чем запрос с использованием соглашения об именах из 4 частей.
Однако, когда я изменяю представление в SSDT для использования открытого запроса, я получаю сообщение об ошибке: Код серьезности Описание Ошибка состояния подавления строки файла проекта SQL71501: представление: [схема]. [Представление] имеет неразрешенную ссылку на объект [LINKEDSERVER].
Я попытался определить [LINKEDSERVER] в скрипте проекта:
exec master.dbo.sp_addlinkedserver @server = N'LINKEDSERVER', @srvproduct=N'SQLSERVER', @provider=N'SQLNCLI', @datasrc=N'SERVERNAME'
А также попытался добавить то же самое в указанный проект.
Итак, как включить OpenQuery в проект SSDT, не вызывая ошибок SQL71501 / «неразрешенная ссылка на объект»?