适用于: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_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;