Freigeben über


DB_NAME (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 DB_NAME zurückgegeben wird. Wenn der Aufruf von DB_NAMEdatabase_id ausgelassen wird oder die database_id lautet, DB_NAME gibt 0den Namen der aktuellen Datenbank zurück.

Rückgabetypen

nvarchar(128)

Berechtigungen

Wenn der Aufrufer DB_NAME nicht über eine bestimmte Nicht-master oder Nicht-Datenbanktempdb verfügt, VIEW ANY DATABASE sind mindestens Berechtigungen auf Serverebene erforderlich, ALTER ANY DATABASE um die entsprechende DB_ID Zeile anzuzeigen.

Für die master Datenbank DB_ID ist mindestens die Berechtigung erforderlich CREATE DATABASE .

Die Datenbank, mit der der Aufrufer eine Verbindung herstellt, wird immer in sys.databasesangezeigt.

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 REVOKE mit VIEW ANY DATABASE widerrufen, sodass sie nicht mehr öffentlich ist, oder die Berechtigung DENY mit VIEW ANY DATABASE 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

In diesem Beispiel wird der aktuelle Datenbankname zurückgegeben.

SELECT DB_NAME() AS [Current Database];

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

In diesem Beispiel wird der Datenbankname und database_id für jede Datenbank zurückgegeben.

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