Команда TSQL для подключения к другому серверу (SQL Server 2005) - PullRequest
8 голосов
/ 13 февраля 2009

Есть ли команда TSQL для подключения к другому серверу?

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

Я видел Ctrl + N во всплывающем диалоговом окне Подключение к серверу на некоторых экранах, но когда я уже нахожусь в окне запросов и нажимаю Ctrl + N, он просто открывает другое окно запросов.

Команда USE позволяет подключаться к другим базам данных на текущем сервере, но есть ли команда, позволяющая подключиться к другому серверу?

Я использую SQL Server 2005.

Ответы [ 5 ]

6 голосов
/ 13 февраля 2009

Либо через меню ...

Запрос> Соединение> Изменить соединение

или с помощью мыши ...

(правая кнопка мыши)> Соединение> Изменить соединение

В обоих случаях появится диалоговое окно Connect to Database Engine

.

Если вы хотите записать некоторый TSQL между серверами, вам нужно создать связанный сервер, а затем использовать OPENQUERY или OPENROWSET в вашем SQL. В предыдущих постах есть несколько хороших советов о том, как это сделать.

6 голосов
/ 13 февраля 2009

Вы можете использовать OpenDataSource со связанным сервером

OpenDataSource(provider_name, init_string)

Например

SELECT
FirstName,
Gender
FROM
OpenDataSource (
'SQLOLEDB',
'DataSource = NOLI\SQL2;UserID=myUserID;Password=myPassword'
).Organisation.dbo.Employees

С MSDN -

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

4 голосов
/ 18 января 2013

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

Режим SQLCMD можно включить в меню запросов в SSMS. После включения вы можете сделать что-то вроде этого:

:CONNECT SERVER1
SELECT @@SERVERNAME;
GO

:CONNECT SERVER2
SELECT @@SERVERNAME;
GO

Зарегистрированные серверы (должны находиться в меню «Вид») позволяют настраивать группы серверов и одновременно выполнять запросы к группам.

И то, и другое может быть полезно во многих сценариях DBA, но я не уверен, что это то, что вам нужно.

1 голос
/ 13 февраля 2009

После настройки связанного сервера вы можете запустить TSQL для него, полностью квалифицировав каждую таблицу / представление

выберите * из [Сервер]. [База данных]. [Владелец]. Таблица

Таким образом, вы можете общаться с любым сервером из любого окна запроса - если это то, что вам нужно. В большинстве Sql вы предоставляете только таблицу, поскольку все остальное по умолчанию. Используя эту технику, вы можете даже написать предложения о соединении между серверами, начиная с координатора распределенных транзакций (MSDTC). Конечно, вы можете сделать это только один раз, чтобы доказать, что он работает, поскольку он работает невероятно медленно.

1 голос
/ 13 февраля 2009

У вас есть возможность создать Связанный сервер и использовать с OPENQUERY или использовать OPENROWSET .

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

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