Как я могу подключиться к внешней базе данных из оператора SQL или хранимой процедуры? - PullRequest
8 голосов
/ 21 декабря 2009

При выполнении оператора SQL или хранимой процедуры в базе данных, вы можете подключиться к внешней базе данных и извлечь данные оттуда?

что-то вроде:

SELECT a.UserID, b.DataIWantToGet 
  FROM mydb.Users as a, externaldb.Data as b

Ответы [ 4 ]

12 голосов
/ 21 декабря 2009

Вам нужно настроить экземпляр связанного сервера . Затем вы можете ссылаться на внешнюю базу данных, как если бы это была база данных SQL Server.

4 голосов
/ 21 декабря 2009

Да - есть два метода: либо использовать функцию OPENROWSET, либо использовать связанные серверы. OPENROWSET полезен для специальных отдельных операторов, но если вы собираетесь делать это регулярно, прочитайте информацию на связанных серверах, поскольку они позволяют вам делать именно то, что вы указали в своем операторе SQL ... например,

SELECT database.owner.table для локальных данных
SELECT server.database.owner.table для удаленных данных

И да, вы можете смешивать и сочетать, чтобы делать объединения как локальные, так и удаленные. Обратите внимание, что вам нужно быть осторожным, если вы выполняете соединения с большими таблицами, существующими на удаленном сервере, поскольку выполнение запроса может занять много времени ...

3 голосов
/ 21 декабря 2009

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

0 голосов
/ 14 июля 2018

Самый простой способ:

  • Нажмите подключиться к серверу
  • когда запрашивается использование имени сервера: 192.168.X.X, 1433 \ SQLEXPRESS с YOURPC \ SQLEXPRESS

(ip и открытый порт целевого сервера sql)

  • Введите правильное имя пользователя и пароль
  • Готово!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...