DB_NAME (Transact-SQL)DB_NAME (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

この関数は、指定されたデータベースの名前を返します。This function returns the name of a specified database.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

DB_NAME ( [ database_id ] )  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

database_iddatabase_id

名前 DB_NAME が返されるデータベースの識別番号 (ID) です。The identification number (ID) of the database whose name DB_NAME will return. DB_NAME の呼び出しで database_id が省略された場合、DB_NAME は現在のデータベースの名前を返します。If the call to DB_NAME omits database_id, DB_NAME returns the name of the current database.

戻り値の型Return types

nvarchar(128)nvarchar(128)

アクセス許可Permissions

DB_NAME の呼び出し元が、マスター 以外または tempdb 以外の特定データベースを所有していない場合は、対応する DB_ID 行を確認するために、少なくとも、サーバー レベルの ALTER ANY DATABASE または VIEW ANY DATABASE 権限が必要です。If the caller of DB_NAME does not own a specific non-master or non-tempdb database, ALTER ANY DATABASE or VIEW ANY DATABASE server-level permissions at minimum are required to see the corresponding DB_ID row. マスター データベースの場合、DB_ID には少なくとも CREATE DATABASE 権限が必要です。For the master database, DB_ID needs CREATE DATABASE permission at minimum. 呼び出し元が接続するデータベースは常に、sys.databases 内で確認できます。The database to which the caller connects will always appear in sys.databases.

重要

既定では、public ロールは、すべてのログインにデータベース情報の表示を許可する VIEW ANY DATABASE 権限を持っています。By default, the public role has the VIEW ANY DATABASE permission, which allows all logins to see database information. ログインでデータベースが検出されるのを阻止するには、public から VIEW ANY DATABASEREVOKE するか、または、個別のログインに対する VIEW ANY DATABASEDENY します。To prevent a login from detecting a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.

Examples

A.A. 現在のデータベース名を返すReturning the current database name

この例では、現在のデータベース名を返します。This example returns the name of the current database.

SELECT DB_NAME() AS [Current Database];  
GO  

B.B. 指定したデータベース ID のデータベース名を返すReturning the database name of a specified database ID

この例では、データベース ID 3 のデータベース名を返します。This example returns the database name for database ID 3.

USE master;  
GO  
SELECT DB_NAME(3) AS [Database Name];  
GO  

例: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

C.C. 現在のデータベース名を取得するReturn the current database name

SELECT DB_NAME() AS [Current Database];  

D.D. データベース ID を使用してデータベースの名前を返すReturn the name of a database by using the database ID

次の例では、各データベースのデータベース名と database_id を返します。This example returns the database name and database_id for each database.

SELECT DB_NAME(database_id) AS [Database], database_id  
FROM sys.databases;  

関連項目See also

DB_ID (Transact-SQL)DB_ID (Transact-SQL)
メタデータ関数 (Transact-SQL)Metadata Functions (Transact-SQL)
sys.databases (Transact-SQL)sys.databases (Transact-SQL)