Dela via


DB_NAME (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Den här funktionen returnerar namnet på en angiven databas.

Transact-SQL syntaxkonventioner

Syntax

DB_NAME ( [ database_id ] )

Argumentpunkter

database_id

Identifieringsnumret (ID) för databasen vars namn DB_NAME returneras. Om anropet till DB_NAME utelämnar database_id, eller om database_id är 0, DB_NAME returnerar namnet på den aktuella databasen.

Returtyper

nvarchar(128)

Behörigheter

Om anroparen av DB_NAME inte äger en specifik icke-master eller icke-databastempdb eller ALTER ANY DATABASEVIEW ANY DATABASE behörigheter på servernivå krävs minst för att se motsvarande DB_ID rad.

För databasen masterDB_ID behöver CREATE DATABASE du minst behörighet.

Databasen som anroparen ansluter till visas alltid i sys.databases.

Viktigt!

Som standard har den offentliga rollen behörigheten VIEW ANY DATABASE , vilket gör att alla inloggningar kan se databasinformation. För att förhindra att en inloggning identifierar en databas, REVOKE behörigheten VIEW ANY DATABASE från offentlig eller DENY behörigheten VIEW ANY DATABASE för enskilda inloggningar.

Exempel

A. Returnera det aktuella databasnamnet

Det här exemplet returnerar namnet på den aktuella databasen.

SELECT DB_NAME() AS [Current Database];
GO

B. Returnera databasnamnet för ett angivet databas-ID

Det här exemplet returnerar databasnamnet för databas-ID 3.

USE master;
GO

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

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Returnera det aktuella databasnamnet

Det här exemplet returnerar det aktuella databasnamnet.

SELECT DB_NAME() AS [Current Database];

D. Returnera namnet på en databas med hjälp av databas-ID:t

Det här exemplet returnerar databasnamnet och database_id för varje databas.

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