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)