Я хочу предложить минимальный набор запросов, которые возвращают базы данных и таблицы в экземпляре Microsoft SQL Server для максимально возможного количества версий SQL Server.
Я не уверен, должен ли я наполовину ответить на свой вопрос, но вот то, что мне нужно в 2000 и 2005 годах. В идеале, я бы хотел вернуться дальше, но у меня нет доступа к более старым версиям: 1003 *
Права доступа
2005: пользователь с разрешением ПРОСМОТРЕТЬ ЛЮБОЕ ОПРЕДЕЛЕНИЕ
2000: пользователь с общедоступной ролью во всех базах данных для извлечения
Базы данных
sp_databases
или
SELECT * FROM sysdatabases
оба работают на SQL Server 2000 и 2005
Таблица
2005
SELECT name FROM <database>.sys.tables
или
SELECT table_name FROM <database>.information_schema.tables WHERE table_type = 'BASE TABLE'
2000
SELECT name from <database>.dbo.sysobjects WHERE xtype = 'U'