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_id,则 DB_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. 返回指定数据库 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;  

另请参阅

DB_ID (Transact-SQL)
元数据函数 (Transact-SQL)
sys.databases (Transact-SQL)