Como listar os databases do meu servidor?
A maneira mais segura de extrair informações do schema do SQL Server é através das system procedures:
EXEC sp_databases
EXEC sp_helpdb
Você também pode usar as tabelas do sistema, mas esta abordagem não é a mais recomendada, pois tabelas de sistema podem ser alteradas em versões futuras do SQL Server.
SELECT name
FROM master..sysdatabases
ORDER BY name
E finalmente, você pode usar a procedure não documentada sp_msForEachDB:
EXEC sp_msForEachDB 'PRINT ''?'''
No SQL Server 2000, você poderia usar a view INFORMATION_SCHEMA, porém – por causa do novo suporte para schema – esta view não possui o mesmo comportamento no SQL Server 2005:
SELECT CATALOG_NAME
FROM INFORMATION_SCHEMA.SCHEMATA
ORDER BY CATALOG_NAME
Para SQL Server 2005, você pode usar algumas das seguintes opções:
EXEC sp_databases
EXEC sp_helpdb
SELECT * FROM sys.databases
SELECT * FROM sys.sysdatabases
EXEC sp_msForEachDB 'PRINT ''?'''