適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
此函式會傳回指定資料庫的名稱。
語法
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;