適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
この関数は、指定されたデータベースの名前を返します。
構文
DB_NAME ( [ database_id ] )
引数
database_id
名前が返されるデータベースの ID (ID) DB_NAME 。
DB_NAMEの呼び出しでdatabase_idが省略されている場合、またはdatabase_idが0されている場合、DB_NAMEは現在のデータベースの名前を返します。
戻り値の型
nvarchar(128)
アクセス許可
DB_NAMEの呼び出し元が特定の非masterまたはtempdb以外のデータベースを所有していない場合、対応するALTER ANY DATABASE行を表示するには、少なくともVIEW ANY DATABASEまたはDB_IDサーバー レベルのアクセス許可が必要です。
master データベースの場合、DB_IDには少なくともCREATE DATABASEアクセス許可が必要です。
呼び出し元が接続するデータベースは常に sys.databasesに表示されます。
重要
既定では、public ロールは、すべてのログインにデータベース情報の表示を許可する VIEW ANY DATABASE 権限を持っています。 ログインでデータベースが検出されるのを阻止するには、public から REVOKE を VIEW ANY DATABASE するか、または、個別のログインに対する DENY を VIEW ANY DATABASE します。
例
A. 現在のデータベース名を取得する
この例では、現在のデータベース名を返します。
SELECT DB_NAME() AS [Current Database];
GO
B. 指定したデータベース ID のデータベース名を返します
この例では、データベース ID 3 のデータベース名を返します。
USE master;
GO
SELECT DB_NAME(3) AS [Database Name];
GO
例: Azure Synapse Analytics、Analytics Platform System (PDW)
C. 現在のデータベース名を取得する
次の使用例は、現在のデータベース名を返します。
SELECT DB_NAME() AS [Current Database];
D. データベース ID を使用してデータベースの名前を返す
次の使用例は、各データベースのデータベース名と database_id を返します。
SELECT DB_NAME(database_id) AS [Database],
database_id
FROM sys.databases;