Compartir a través de


DB_NAME (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Esta función devuelve el nombre de una base de datos especificada.

Convenciones de sintaxis de Transact-SQL

Sintaxis

DB_NAME ( [ database_id ] )

Argumentos

database_id

Número de identificación (ID) de la base de datos cuyo nombre DB_NAME devuelve. Si la llamada a DB_NAME omite database_id o el database_id es 0, DB_NAME devuelve el nombre de la base de datos actual.

Tipos de valores devueltos

nvarchar(128)

Permisos

Si el autor de la llamada de no es propietario de una base de DB_NAME datos específicamaster que no es o notempdb es de base de datos, ALTER ANY DATABASE o VIEW ANY DATABASE los permisos de nivel de servidor son necesarios como mínimo para ver la fila correspondiente DB_ID .

Para la master base de datos, DB_ID necesita CREATE DATABASE permiso como mínimo.

La base de datos a la que se conecta el autor de la llamada siempre aparece en sys.databases.

Importante

El rol público tiene el permiso VIEW ANY DATABASE de forma predeterminada, lo que permite a todos los inicios de sesión ver información de la base de datos. Para evitar que un inicio de sesión detecte una base de datos, use REVOKE para revocar el permiso VIEW ANY DATABASE del público, o bien use DENY para denegar el permiso VIEW ANY DATABASE para inicios de sesión individuales.

Ejemplos

A. Devolver el nombre de la base de datos actual

En este ejemplo se devuelve el nombre de la base de datos actual.

SELECT DB_NAME() AS [Current Database];
GO

B. Devuelve el nombre de la base de datos de un identificador de base de datos especificado.

En este ejemplo se devuelve el nombre de la base de datos con el identificador 3.

USE master;
GO

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

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

C. Devolver el nombre de la base de datos actual

En este ejemplo se devuelve el nombre de la base de datos actual.

SELECT DB_NAME() AS [Current Database];

D. Devolver el nombre de la base de datos usando el identificador de base de datos

En este ejemplo se devuelve el nombre de la base de datos y database_id para cada base de datos.

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