Как определить, существует ли база данных на связанном сервере? - PullRequest
0 голосов
/ 27 апреля 2011

Я знаю, что вы можете сделать что-то вроде:

select count(*) as Qty from sys.databases where name like '%mydatabase%'

но как вы могли бы сделать что-то вроде:

select count(*) as Qty from linkedServer.sys.databases where name like '%mydatabases%'

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

Ответы [ 3 ]

3 голосов
/ 27 апреля 2011

Предполагая, что ваш логин связанного сервера имеет разрешения на чтение таблицы master.sys.databases, вы можете использовать следующее:

select * from linkedserver.master.sys.databases

В прошлом я использовал этот самый запрос в SQL Server 2008 R2.

0 голосов
/ 24 сентября 2013

Я думаю, что только ваш синтаксис останавливает вас, попробуйте использовать одинарные кавычки вместо %% вокруг имени вашей базы данных:

SELECT COUNT(*) as Qty FROM LinkedServer.master.sys.databases where name like 'mydatabase'

Правильное форматирование для выбора связанного сервера уже былоответил здесь:

Пример запроса к связанному серверу SQL Server

0 голосов
/ 07 мая 2012

Ниже приведена ссылка на работающий курсор: http://jasonbrimhall.info/2012/03/05/are-my-linked-servers-being-used/

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

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