Проверка базы данных TSQL онлайн - PullRequest
3 голосов
/ 16 июня 2010

Как лучше всего проверить, работает ли экземпляр Microsoft SQL Server? У меня есть представление, которое охватывает два экземпляра Microsoft SQL Server, но прежде чем запрашивать его в хранимой процедуре, я хотел бы убедиться, что второй экземпляр сервера работает с резервной опцией просто запроса локальных данных.

Второй экземпляр - это связанный сервер.

В настоящее время я рассматриваю функцию SQL CLR, которая может пытаться открыть соединение с более коротким временем ожидания, но мне интересно, можно ли это сделать напрямую в Transact SQL.

Ответы [ 2 ]

6 голосов
/ 16 июня 2010

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

select 
    name
from sys.databases
where name = 'DatabaseName'
    and state = 0 --Database is online

Полный список доступных столбцов для представления каталога sys.databases см. В электронной документации: sys.databases

РЕДАКТИРОВАТЬ: Исправить запрос SQL

0 голосов
/ 16 июня 2010

Запрос баз данных sys.sys через связанный сервер (вам нужны разрешения), вот значения для столбца состояния

1 = autoclose (ALTER DATABASE)

4 = select into/bulkcopy (ALTER DATABASE using SET RECOVERY)

8 = trunc. log on chkpt (ALTER DATABASE using SET RECOVERY)

16 = torn page detection (ALTER DATABASE)

32 = loading

64 = pre recovery

128 = recovering

256 = not recovered

512 = offline (ALTER DATABASE)

1024 = read only (ALTER DATABASE)

2048 = dbo use only (ALTER DATABASE using SET RESTRICTED_USER)

4096 = single user (ALTER DATABASE)

32768 = emergency mode

4194304 = autoshrink (ALTER DATABASE)

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