適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Analytics Platform System (PDW)
此函式會傳回指定資料庫的名稱。
語法
DB_NAME ( [ database_id ] )
引數
database_id
名稱傳回之資料庫的 DB_NAME
識別碼(ID)。 如果呼叫 DB_NAME
省略 database_id,或 database_id 為 0
, DB_NAME
則會傳回目前資料庫的名稱。
傳回類型
nvarchar(128)
權限
如果的呼叫端 DB_NAME
沒有特定的非master
或非tempdb
資料庫, ALTER ANY DATABASE
或 VIEW ANY DATABASE
伺服器層級的許可權至少需要才能查看對應的 DB_ID
數據列。
master
針對資料庫,DB_ID
至少需要CREATE DATABASE
許可權。
呼叫端連接的資料庫一律會出現在 中 sys.databases
。
重要
根據預設,公用角色具備 VIEW ANY DATABASE
權限,允許所有登入查看資料庫資訊。 若要防止登入偵測資料庫,請 REVOKE
公用 VIEW ANY DATABASE
權限,或 DENY
個別登入的 VIEW ANY DATABASE
權限。
範例
A. 傳回目前資料庫的名稱
此範例會傳回目前資料庫的名稱。
SELECT DB_NAME() AS [Current Database];
GO
B. 傳回指定之資料庫標識碼的資料庫名稱
此範例會傳回資料庫識別碼 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. 使用資料庫識別碼傳回資料庫的名稱
本範例會傳回每個資料庫的資料庫名稱和 database_id
。
SELECT DB_NAME(database_id) AS [Database],
database_id
FROM sys.databases;