title: "DB_NAME (Transact-SQL) | Microsoft Docs" ms.custom: "" ms.date: "07/30/2017" ms.prod: "sql" ms.prod_service: "database-engine, sql-database, sql-data-warehouse, pdw" ms.service: "" ms.component: "t-sql|functions" ms.reviewer: "" ms.suite: "sql" ms.technology:
- "database-engine" ms.tgt_pltfrm: "" ms.topic: "language-reference" f1_keywords:
- "DB_NAME"
- "DB_NAME_TSQL" dev_langs:
- "TSQL" helpviewer_keywords:
- "database names [SQL Server], DB_NAME"
- "names [SQL Server], databases"
- "viewing database names"
- "displaying database names"
- "DB_NAME function" ms.assetid: e21fb33a-a3ea-49b0-bb6b-8f789a675a0e caps.latest.revision: 37 author: "edmacauley" ms.author: "edmaca" manager: "craigg" ms.workload: "Active" monikerRange: ">= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || = sqlallproducts-allversions"
[!INCLUDEtsql-appliesto-ss2008-all-md]
Returns the database name.
Transact-SQL Syntax Conventions
DB_NAME ( [ database_id ] ) database_id
Is the identification number (ID) of the database to be returned. database_id is int, with no default. If no ID is specified, the current database name is returned.
nvarchar(128)
If the caller of DB_NAME is not the owner of the database and the database is not master or tempdb, the minimum permissions required to see the corresponding row are ALTER ANY DATABASE or VIEW ANY DATABASE server-level permission, or CREATE DATABASE permission in the master database. The database to which the caller is connected can always be viewed in sys.databases.
Important
By default, the public role has the VIEW ANY DATABASE permission, allowing all logins to see database information. To block a login from the ability to detect a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.
The following example returns the name of the current database.
SELECT DB_NAME() AS [Current Database];
GO The following example returns the database name for database ID 3.
USE master;
GO
SELECT DB_NAME(3)AS [Database Name];
GO SELECT DB_NAME() AS [Current Database]; The following example returns the database name and database_id for each database.
SELECT DB_NAME(database_id) AS [Database], database_id
FROM sys.databases; DB_ID (Transact-SQL)
Metadata Functions (Transact-SQL)
sys.databases (Transact-SQL)