DB_NAME (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
この関数は、指定されたデータベースの名前を返します。
構文
DB_NAME ( [ database_id ] )
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
database_id
名前 DB_NAME
が返されるデータベースの識別番号 (ID) です。 DB_NAME
の呼び出しで database_id が省略された場合、DB_NAME
は現在のデータベースの名前を返します。
戻り値の型
nvarchar(128)
アクセス許可
DB_NAME
の呼び出し元が、マスター以外または tempdb 以外の特定データベースを所有していない場合は、対応する DB_ID
行を確認するために、少なくとも、サーバー レベルの ALTER ANY DATABASE
または VIEW ANY DATABASE
権限が必要です。 マスター データベースの場合、DB_ID
には少なくとも CREATE DATABASE
権限が必要です。 呼び出し元が接続するデータベースは常に、sys.databases 内で確認できます。
重要
既定では、public ロールは、すべてのログインにデータベース情報の表示を許可する VIEW ANY DATABASE
権限を持っています。 ログインでデータベースが検出されるのを阻止するには、public から VIEW ANY DATABASE
を REVOKE
するか、または、個別のログインに対する VIEW ANY DATABASE
を DENY
します。
例
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;
関連項目
DB_ID (Transact-SQL)
メタデータ関数 (Transact-SQL)
sys.databases (Transact-SQL)