DB_NAME (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

此函数返回指定数据库的名称。

Transact-SQL 语法约定

语法

DB_NAME ( [ database_id ] )

参数

database_id

名称 DB_NAME 返回的数据库的标识号(ID)。 如果调用DB_NAME省略database_id或database_id0DB_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;