次の方法で共有


DB_NAME (Transact-SQL)

適用対象:SQL ServerAzure SQL データベースAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Transact-SQL 構文表記規則

構文

DB_NAME ( [ database_id ] )

引数

database_id

名前が返されるデータベースの ID (ID) DB_NAMEDB_NAMEの呼び出しでdatabase_idが省略されている場合、またはdatabase_id0されている場合、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 から REVOKEVIEW ANY DATABASE するか、または、個別のログインに対する DENYVIEW 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;