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

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

что-то типа:

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

4 ответов


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


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

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

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


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


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

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

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

  • введите правильное имя пользователя и пароль
  • готово!