2009-02-04 7 views
1

Я использую VSTS 2008 с установками разработчиков и баз данных. У меня установлен GDR GDR (версия 9.0.31124). У нас есть несколько мест в коде, которые мы ссылаемся на связанные серверы (универсальный мейнфрейм DB2, iSeries и SQL Server). Одним из таких примеров является этот код, который мы имеем в процедуре магазина:Как устранить ошибки запроса на связанный сервер с 4-мя именами в проекте VSTS DB?

SELECT VendorID 
INTO  #tmpVendors 
FROM DataWhse.BIDataWhse.BP.Vendors 
WHERE EffectiveDate < DATEADD(day, -1, DATEADD(month, 1, CAST(LTRIM(RTRIM(CAST(@Month AS CHAR(2)))) + '/01/' + CAST(@YEAR AS CHAR(4)) AS DATETIME))) 
AND  ExpirationDate > CAST(LTRIM(RTRIM(CAST(@Month AS CHAR(2)))) + '/01/' + CAST(@YEAR AS CHAR(4)) AS DATETIME) 

Я получаю неразрешенные эталонные ошибки (TSD03006) на этом типе кода. Какова текущая рекомендация по обращению с эталонным ссылкой на связанный сервер? В этом случае мы имеем дело с другим экземпляром SQL Server 2005. В базе данных, к которой мы привязаны, есть множество таблиц, которые мы никогда не использовали. Таким образом, я бы хотел, чтобы избежать необходимости вытащить всю схему для этой БД, если это возможно.

Информация, которую я нахожу при поиске, кажется устаревшей. За последний год GDR сильно изменилась, и есть много рекомендаций от предыдущих версий CTP, которые теперь являются oboslete.

ответ

2

Я, наконец, получил это решение. Я создал проект базы данных с именем BIDataWhse, добавил схему bp, добавил пользователя bp и добавил определение таблицы bp.vendors. Затем скомпилировал этот проект и добавил ссылку db на проект, где я получал ошибку. В ссылке я указал переменные для сервера и базы данных и разрешил замену переменных. Итоговый код:

SELECT VendorID  
INTO  #tmpVendors  
FROM [$(DataWhse)].[$(BIDataWhse)].BP.Vendors  
WHERE EffectiveDate < DATEADD(day, -1, DATEADD(month, 1, CAST(LTRIM(RTRIM(CAST(@Month AS CHAR(2)))) + '/01/' + CAST(@YEAR AS CHAR(4)) AS DATETIME)))  
AND  ExpirationDate > CAST(LTRIM(RTRIM(CAST(@Month AS CHAR(2)))) + '/01/' + CAST(@YEAR AS CHAR(4)) AS DATETIME)  
2

Чтобы расширить эту ситуацию, ссылка «Добавить базу данных» выполнит большую часть работы за вас. Вам необходимо создать проект для связанной базы данных и импортировать схему db из базы данных (или импортировать скрипты для таблиц, которые вам нужны, если вы не хотите делать всю базу данных). «В ссылке я указал переменные для сервера и базы данных и разрешил замену переменных». Это означает, что в диалоговом окне «Добавить DB Ref» вы можете проверить «Определить переменную сервера», «Определить переменную базы данных» и «Обновить объекты схемы» и «Сценарии». Введите имена переменных (он будет окружать их $ (..)) и введите значения, которые вы хотите заменить (реальные имена серверов/баз данных, которые нужно вставить при создании сценария развертывания). Параметр «Обновление» заставит его перейти через ваш проект и отредактировать все сценарии, чтобы заменить имена серверов и баз данных на переменные. круто.

 Смежные вопросы

  • Нет связанных вопросов^_^