DB_NAME (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Diese Funktion gibt den Namen einer angegebenen Datenbank zurück.

Transact-SQL-Syntaxkonventionen

Syntax

DB_NAME ( [ database_id ] )  

Argumente

database_id

Die Identifikationsnummer (ID) der Datenbank, deren Name von DB_NAME zurückgegeben wird. Wenn database_id beim Aufruf von DB_NAME ausgelassen wird, gibt DB_NAME den Namen der aktuellen Datenbank zurück.

Rückgabetypen

nvarchar(128)

Berechtigungen

Wenn der Aufrufer von DB_NAME keine spezifische Nicht-Master- oder Nicht-tempdb-Datenbank besitzt, sind mindestens die Berechtigungen ALTER ANY DATABASE oder VIEW ANY DATABASE auf Serverebene erforderlich, um die entsprechende DB_ID-Zeile anzuzeigen. DB_ID benötigt zumindest die Berechtigung CREATE DATABASE für die Master-Datenbank. Die Datenbank, mit der der Aufrufer eine Verbindung herstellt, wird immer in sys.databases angezeigt.

Wichtig

Standardmäßig verfügt die öffentliche Rolle über die Berechtigung VIEW ANY DATABASE, sodass alle Anmeldenamen auf Datenbankinformationen zugreifen können. Verhindern Sie, dass ein Anmeldename eine Datenbank erkennt, indem Sie die Berechtigung VIEW ANY DATABASE mit REVOKE widerrufen, sodass sie nicht mehr öffentlich ist, oder die Berechtigung VIEW ANY DATABASE mit DENY für individuelle Anmeldungen verweigern.

Beispiele

A. Zurückgeben des aktuellen Datenbanknamens

In diesem Beispiel wird der Name der aktuellen Datenbank zurückgegeben.

SELECT DB_NAME() AS [Current Database];  
GO  

B. Zurückgeben des Datenbanknamens einer angegebenen Datenbank-ID

Im folgenden Beispiel wird der Name der Datenbank mit der ID 3 zurückgegeben.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

C. Zurückgeben des aktuellen Datenbanknamens

SELECT DB_NAME() AS [Current Database];  

D: Zurückgeben des Namens einer Datenbank unter Verwendung der Datenbank-ID

Im folgenden Beispiel werden die Datenbanknamen und database_id aller Datenbanken zurückgegeben.

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

Siehe auch

DB_ID (Transact-SQL)
Metadatenfunktionen (Transact-SQL)
sys.databases (Transact-SQL)