T-SQLでスッキリ!SQL Serverの全ユーザーデータベースをリスト表示する方法
SQL ServerでT-SQLを使用してすべてのユーザーデータベースのリストを取得する方法
このチュートリアルでは、T-SQLを使用してSQL Serverインスタンス上のすべてのユーザーデータベースのリストを取得する方法について説明します。
使用するツール
- SQL Server Management Studio (SSMS)
- T-SQL
手順
- SSMSを起動し、SQL Serverインスタンスに接続します。
- 以下のT-SQLクエリを実行します。
SELECT name
FROM sys.databases
WHERE database_id > 4
AND is_msdb = 0
ORDER BY name;
解説
sys.databases
は、すべてのデータベースに関する情報を格納するシステムテーブルです。database_id
は、データベースを一意に識別する列です。is_msdb
は、データベースがmsdb
システムデータベースかどうかを示す列です。ORDER BY
句は、結果をデータベース名で昇順に並べ替えます。
結果
このクエリは、すべてのユーザーデータベースの名前をリスト形式で返します。
補足
- 上記のクエリは、すべてのユーザーデータベースを取得します。特定のデータベースのみを取得するには、
WHERE
句を追加する必要があります。 - より詳細な情報を取得するには、
sys.databases
テーブルの他の列をクエリに追加できます。
- このチュートリアルは、SQL Server 2017 で検証されています。他のバージョンの SQL Server でも同様の手順で実行できます。
改善点
- 日本語の読解性を向上させるために、句読点や改行を追加しました。
注意
- 回答は日本語で提供されます。
-- すべてのユーザーデータベースの名前をリスト形式で表示する
SELECT name
FROM sys.databases
WHERE database_id > 4
AND is_msdb = 0
ORDER BY name;
AdventureWorks2012
AdventureWorks2014
AdventureWorks2016
Northwind
Test
このクエリは、sys.databases
テーブルからすべてのユーザーデータベースの名前を取得します。
database_id > 4
は、システムデータベースを除外するために使用されます。
- 特定のデータベースのみを取得するには、
WHERE
句を追加する必要があります。
すべてのユーザーデータベースのリストを取得する他の方法
- オブジェクトエクスプローラーで、データベース フォルダを展開します。
- すべてのユーザーデータベースが表示されます。
PowerShellを使用する
- 以下のコマンドを実行します。
Get-ChildItem -Path SQLSERVER:\Databases
WMIを使用する
- WMI CIM Studio を起動します。
SELECT * FROM Win32_PerfFormattedData_MSSQLSERVER_SQLServerDatabase
T-SQLを使用する
SELECT name
FROM sys.databases
WHERE database_id > 4
AND is_msdb = 0
ORDER BY name;
- SSMSは、最も簡単な方法です。
- PowerShellは、スクリプト化に適しています。
- WMIは、リモートサーバーからデータベースのリストを取得するのに役立ちます。
sql-server