適用対象:SQL Server
Azure SQL データベース
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
この関数は、指定されたデータベースの名前を返します。
構文
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
以外のデータベースを所有していない場合、対応するDB_ID
行を表示するには、少なくともALTER ANY DATABASE
またはVIEW ANY DATABASE
サーバー レベルのアクセス許可が必要です。
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;