できるだけ多くのバージョンの SQL Server で、Microsoft SQL Server インスタンス内のデータベースとテーブルを返す最小限のクエリ セットを作成したいと考えています。
自分の質問に半分答えるべきかどうかはわかりませんが、2000年と2005年に必要だと思うものは次のとおりです。理想的にはさらに前に戻りたいのですが、古いバージョンにはアクセスできません。
権限
2005: VIEW ANY DEFINITION 権限を持つユーザー
2000: 取得するすべてのデータベースで public ロールを持つユーザー
データベース
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'