При выполнении SQL-оператора или хранимой процедуры на базе данных, можно ли соединиться с внешней базой данных и вытянуть ли данные оттуда?
что-то как:
SELECT a.UserID, b.DataIWantToGet
FROM mydb.Users as a, externaldb.Data as b
Вам потребуется настроить экземпляр связанного сервера . Затем вы можете ссылаться на внешнюю базу данных, как на базу данных SQL Server.
Ага - есть два метода: либо использовать функцию OPENROWSET
, либо использовать связанные серверы. OPENROWSET полезен для специальных отдельных операторов, но если вы собираетесь делать это регулярно, читайте информацию о связанных серверах, поскольку они позволяют вам делать именно то, что вы указали в своем операторе SQL ... например,
SELECT database.owner.table
для локальных данных
SELECT server.database.owner.table
для удаленных данных
И да, вы можете смешивать и сопоставлять, чтобы делать соединения twixt local и remote. Обратите внимание, что вам нужно быть осторожным, если вы выполняете соединения с большими таблицами, которые существуют на удаленном сервере, так как запрос может занять много времени для выполнения ...
Да, можно. Для начала вам следует взглянуть на связанных серверов . Вы также можете использовать OPENROWSET , чтобы обращаться к ним напрямую без связанного сервера.