Проверьте доступ к базе данных (SQL Server 2005/2008) - PullRequest
0 голосов
/ 04 апреля 2011

Как лучше всего проверить доступ к базе данных с удаленного компьютера.

Вот такая ситуация:

  • SQL Server 2005 (или 2008) работает на MACHINE1 (Windows 2003 или 2008).Существует база данных с именем ENTERPRISEDB.

  • Другой сервер, который называется MACHINE2 (Windows 2003 или 2008).Он имеет ODBC-соединение с MACHINE1.

Теперь, какой самый лучший и простой запрос SQL для проверки, может ли MACHINE2 подключиться и получить доступ к ENTERPRISEDB в MACHINE1?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2011

Если ваше ODBC-соединение с базой данных ENTERPRISEDB, то вы можете запустить

SELECT top 1 1 FROM INFORMATION_SCHEMA.SCHEMATA WHERE CATALOG_NAME='ENTERPRISEDB'

, который вернет "1", если база данных существует, или ничего, если она не существует.

Если вам нужно возвращение типа boolean / int, попробуйте

SELECT case when COUNT(*) >0 then 1 else 0 end 
FROM INFORMATION_SCHEMA.SCHEMATA WHERE CATALOG_NAME='ENTERPRISEDB'

, который вернет «1», если он существует, «0», если его нет.

0 голосов
/ 04 апреля 2011

Я всегда использую

Select @@servername, @@SERVICENAME

Возвращает имя сервера, имя экземпляра для проверки основного подключения к серверу. Чтобы проверить правильность подключения к базе данных, вы не можете превзойти sys.objects.

select DB_NAME(), * from sys.objects

Возвращает таблицу с текущим именем базы данных в качестве первого столбца и списком имен объектов в качестве общего списка данных.

...