适用于: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_id0,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. 返回指定数据库 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;