DB_NAME (Transact-SQL)DB_NAME (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Эта функция возвращает имя указанной базы данных.This function returns the name of a specified database.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

DB_NAME ( [ database_id ] )  

АргументыArguments

database_iddatabase_id

Идентификационный номер базы данных, имя которой вернет функция DB_NAME.The identification number (ID) of the database whose name DB_NAME will return. Если в вызове DB_NAME аргумент database_id не указан, функция DB_NAME возвращает имя текущей базы данных.If the call to DB_NAME omits database_id, DB_NAME returns the name of the current database.

Типы возвращаемых данныхReturn types

nvarchar(128)nvarchar(128)

РазрешенияPermissions

Если участник, вызывающий DB_NAME, не является владельцем конкретной базы данных, отличной от базы данных master или tempdb, то минимальными разрешениями, необходимыми для просмотра соответствующей строки ALTER ANY DATABASE, являются разрешения уровня сервера VIEW ANY DATABASE или DB_ID.If the caller of DB_NAME does not own a specific non-master or non-tempdb database, ALTER ANY DATABASE or VIEW ANY DATABASE server-level permissions at minimum are required to see the corresponding DB_ID row. Для базы данных master функция DB_ID требует по крайней мере разрешения CREATE DATABASE.For the master database, DB_ID needs CREATE DATABASE permission at minimum. База данных, к которой подключается вызывающий участник, всегда отображается в представлении sys.databases.The database to which the caller connects will always appear in sys.databases.

Важно!

По умолчанию общедоступная роль имеет разрешение VIEW ANY DATABASE, что позволяет всем именам для входа просматривать информацию в базе данных.By default, the public role has the VIEW ANY DATABASE permission, which allows all logins to see database information. Чтобы имя для входа не могло обнаруживать базу данных, отзовите общедоступное разрешение REVOKE с помощью инструкции VIEW ANY DATABASE или отмените разрешение DENY для отдельных имен для входа с помощью инструкции VIEW ANY DATABASE.To prevent a login from detecting a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.

ПримерыExamples

A.A. Возврат имени текущей базы данныхReturning the current database name

В приведенном ниже примере возвращается имя текущей базы данных.This example returns the name of the current database.

SELECT DB_NAME() AS [Current Database];  
GO  

Б.B. Возврат имени базы данных с указанным идентификатором базы данныхReturning the database name of a specified database ID

В приведенном ниже примере возвращается имя базы данных с идентификатором 3.This example returns the database name for database ID 3.

USE master;  
GO  
SELECT DB_NAME(3)AS [Database Name];  
GO  

Примеры: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

В.C. Получение имени текущей базы данныхReturn the current database name

SELECT DB_NAME() AS [Current Database];  

Г.D. Получение имени базы данных по ее идентификаторуReturn the name of a database by using the database ID

В приведенном ниже примере возвращаются имя и идентификатор каждой базы данных.This example returns the database name and database_id for each database.

SELECT DB_NAME(database_id) AS [Database], database_id  
FROM sys.databases;  

См. также разделSee also

DB_ID (Transact-SQL)DB_ID (Transact-SQL)
Функции метаданных (Transact-SQL)Metadata Functions (Transact-SQL)
sys.databases (Transact-SQL)sys.databases (Transact-SQL)