分享方式:


DB_NAME (Transact-SQL)

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

此函式會傳回指定資料庫的名稱。

Transact-SQL 語法慣例

語法

DB_NAME ( [ database_id ] )  

引數

database_id

DB_NAME 會傳回其名稱之資料庫的識別碼 (ID)。 如果 DB_NAME 呼叫省略 database_idDB_NAME 會傳回目前資料庫的名稱。

傳回類型

nvarchar(128)

權限

如果 DB_NAME 的呼叫端未擁有特定非 master 或非 tempdb 資料庫,至少需要 ALTER ANY DATABASEVIEW 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;  

請參閱

DB_ID (Transact-SQL)
中繼資料函數 (Transact-SQL)
sys.databases (Transact-SQL)