DB_NAME (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

この関数は、指定されたデータベースの名前を返します。

Transact-SQL 構文表記規則

構文

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 DATABASEREVOKE するか、または、個別のログインに対する VIEW ANY DATABASEDENY します。

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)