Мне нужны parameters для requestа нескольких SQL-serverов

В последние месяцы мы перешли на новое программное приложение. Команда миграции (поставщик) оставила неизменную старую базу данных. Они преобразовали некоторые старые данные в базу данных «архив», используя структуру базы данных нового поставщика. (Таким образом, новое программное обеспечение может использоваться для доступа к архивированным данным, тем самым устраняя необходимость в лицензиях для старого программного обеспечения.) С момента преобразования наша компания ввела данные в новую базу данных.

Мне нужно извлечь данные из всех баз данных THREE (на двух serverах SQLserver2005). Я хотел бы использовать request «union», чтобы вытащить все данные и автоматически устранить любые duplicates записей.

Я продолжил «квесты Google» и сделал некоторое чтение. Один из вариантов – это связанные serverы. Другой вариант, с которым я столкнулся, – OPENDATASOURCE.

Мои три базы данных расположены на двух SQL-serverах:

  • «Сервер Box1»: размещает server FAYRMS1 (SQL Server 9.0.3042), одну базу данных старых устаревших данных с именем VSI_DATA
  • «Сервер Box2»: server домов FAYOSSIRMS (SQL Server 9.0.1399), одна database архивных данных, называемая rmsconv И одна database «живых» данных, называемая rms

Я могу «подkeyиться» ко всем трем базам данных по отдельности (validation подлинности Windows). При подkeyении к каждой конкретной базе данных я могу выполнить request, который возвращает нужные мне данные. У меня возникли проблемы, когда я подkeyен к одной базе данных, и я пытаюсь извлечь данные из другой базы данных. (Я попытался создать полностью квалифицированные имена в своем предложении FROM – я получил ошибки. Я requestил sys.servers и обнаружил, что базы данных не связаны.)

Я искал googled и много читал, но я не нашел ответа. Каков syntax для выполнения requestа UNION, который будет извлекать данные из 3 баз данных?

One Solution collect form web for “Мне нужны parameters для requestа нескольких SQL-serverов”

Я бы создал связанные serverы, чтобы сделать это, если вы просто делаете простые выборки. OPENDATASOURCE не требуется. Ваш request будет примерно таким:

SELECT Field1, Field2, Field3, Field4 FROM [Server1].[Database1].[MySchema].[Table1] UNION SELECT Field1, Field2, Field3, Field4 FROM [Server2].[Database2].[MySchema].[Table2] UNION SELECT Field1, Field2, Field3, Field4 FROM [Server3].[Database3].[MySchema].[Table3] 

Предполагая, что у вас есть 3 связанных serverа с именем Server1, Server2 и Server3

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

Создайте связанный server на FAYOSSIRMS, который указывает на FAYRMS1, назовите его как таковой – FAYRMS1.

Тогда ваш request будет выглядеть так:

 SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM [FAYRMS1].[VSI_DATA].[dbo].[Table3] FROM [rms]. [Dbo]. [Таблица 1] SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM [FAYRMS1].[VSI_DATA].[dbo].[Table3] FROM [rmsconv]. [Dbo]. [Таблица2] SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM [FAYRMS1].[VSI_DATA].[dbo].[Table3] 

(если ваша схема – dbo)

РЕДАКТИРОВАТЬ
Если вы застряли с OPENDATASOURCE, то сделайте снимок:

 SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM OPENDATASOURCE('SQLNCLI','Data Source=FAYRMS1;Integrated Security=SSPI') .VSI_DATA.dbo.Table3 FROM [rms]. [Dbo]. [Таблица 1] SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM OPENDATASOURCE('SQLNCLI','Data Source=FAYRMS1;Integrated Security=SSPI') .VSI_DATA.dbo.Table3 FROM [rmsconv]. [Dbo]. [Таблица2] SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM OPENDATASOURCE('SQLNCLI','Data Source=FAYRMS1;Integrated Security=SSPI') .VSI_DATA.dbo.Table3 FROM OPENDATASOURCE («SQLNCLI», «Источник данных = FAYRMS1; Интегрированная security = SSPI») SELECT [SomeData] FROM [rms].[dbo].[Table1] UNION SELECT [SomeData] FROM [rmsconv].[dbo].[Table2] UNION SELECT [SomeData] FROM OPENDATASOURCE('SQLNCLI','Data Source=FAYRMS1;Integrated Security=SSPI') .VSI_DATA.dbo.Table3 

Это откроет connection с FAYRMS1 с использованием собственного клиента SQL и проверки подлинности Windows

  • Сервер отчетов Crystal Reports и SQL Server
  • Резервное копирование приложений VB6 с использованием SQL 2005 неожиданно не работает
  • SQL Server 2005 x64, настройка максимальной памяти serverа
  • Как отkeyить проверку подлинности Windows на экземпляре SQL Server?
  • SQL Server 2005 вставляет значение null, когда значение жестко закодировано
  • как выполнить очистку кеша процедуры для одной базы данных
  • Повреждение fileа журнала базы данных в SQL Server 2005
  • Могу ли я воспроизвести 2 базы данных SQL Server с внешним keyом в некоторых tableх?
  • Почему SQL Server не использует search индекса при запуске параметризованного requestа?
  • Как создать полноtextовый directory в качестве directoryа по умолчанию?
  • Как проверить, работает ли server в режиме нажатия
  • Interesting Posts

    Низкое использование ЦП в IIS без конкуренции resources

    Первоначальная настройка для решений готовности к обновлению и обновлению обновлений OMS

    Передача Rsync через SSH очень медленная

    Как управлять удаленным доступом к Sonicwall VPN за пределами паролей?

    Как find информацию обозревателя Orig Lock в LockoutStatus

    Почему мой новый пакет не установлен правильно? Я создал конфликт?

    Оценка пространства данных, которое будет использоваться моим Mysql при добавлении таблицы

    ограничение размера ответа об ошибке в qmail

    Как find слово в SQL?

    Не разрешать подkeyение к Интерlessу для пользователей, которые установили proxy-server в своем browserе.

    Перенаправить субдомен в папку в nginx версии 1.1.19 на Ubuntu

    Новый RAID1 + 0 в хранилище P2000

    Клиентское / serverное приложение Соединение RPC очень часто отkeyается

    Не удается выполнить SSH на server, если только connection VNC не установлено

    SSL-certificate для sql-serverа на ec2