DB_ID (Transact-SQL)DB_ID (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Esta función devuelve el número de identificación de base de datos de una base de datos especificada.This function returns the database identification (ID) number of a specified database.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

DB_ID ( [ 'database_name' ] )   

ArgumentosArguments

'database_name''database_name'
El nombre de la base de datos cuyo número de identificación de base de datos devolverá DB_ID.The name of the database whose database ID number DB_ID will return. Si la llamada a DB_ID omite database_name, DB_ID devuelve el identificador de la base de datos actual.If the call to DB_ID omits database_name, DB_ID returns the ID of the current database.

Tipos de valores devueltosReturn types

intint

NotasRemarks

DB_ID solo se puede usar para devolver el identificador de la base de datos actual de Azure SQL Database.DB_ID may only be used to return the database identifier of the current database in Azure SQL Database. Se devuelve NULL si el nombre de la base de datos que especificó es distinto de la base de datos actual.NULL is returned if the specified database name is other than the current database.

PermisosPermissions

Si el autor de la llamada de DB_ID no posee una base de datos master o distinta de tempdb determinada, como mínimo se requieren los permisos ALTER ANY DATABASE o VIEW ANY DATABASE de nivel de servidor para ver la fila DB_ID correspondiente.If the caller of DB_ID does not own a specific non-master or non-tempdb database, ALTER ANY DATABASE or VIEW ANY DATABASE server-level permissions at minimum are required to see the corresponding DB_ID row. Para la base de datos master, DB_ID necesita el permiso CREATE DATABASE como mínimo.For the master database, DB_ID needs CREATE DATABASE permission at minimum. La base de datos a la que se conecta el autor de la llamada siempre aparece en sys.databases.The database to which the caller connects will always appear in sys.databases.

Importante

El rol público tiene el permiso VIEW ANY DATABASE de forma predeterminada, lo que permite a todos los inicios de sesión ver información de la base de datos.By default, the public role has the VIEW ANY DATABASE permission, which allows all logins to see database information. Para evitar que un inicio de sesión detecte una base de datos, use REVOKE para revocar el permiso VIEW ANY DATABASE del público, o bien use DENY para denegar el permiso VIEW ANY DATABASE para inicios de sesión individuales.To prevent a login from detecting a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.

EjemplosExamples

A.A. Devolver el Id. de base de datos de la base de datos actualReturning the database ID of the current database

En este ejemplo se devuelve el identificador de base de datos de la base de datos actual.This example returns the database ID of the current database.

SELECT DB_ID() AS [Database ID];  
GO  

B.B. Devolver el Id. de base de datos de una base de datos específicaReturning the database ID of a specified database

En este ejemplo se devuelve el identificador de base de datos de la base de datos AdventureWorks2012AdventureWorks2012.This example returns the database ID of the AdventureWorks2012AdventureWorks2012 database.

SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];  
GO  

C.C. Usar DB_ID para especificar el valor de un parámetro de una función del sistemaUsing DB_ID to specify the value of a system function parameter

En este ejemplo se usa DB_ID para devolver el identificador de base de datos de la base de datos AdventureWorks2012AdventureWorks2012 en la función del sistema sys.dm_db_index_operational_stats.This example uses DB_ID to return the database ID of the AdventureWorks2012AdventureWorks2012 database in the system function sys.dm_db_index_operational_stats. La función toma un Id. de base de datos como primer parámetro.The function takes a database ID as the first parameter.

DECLARE @db_id int;  
DECLARE @object_id int;  
SET @db_id = DB_ID(N'AdventureWorks2012');  
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');  
IF @db_id IS NULL   
  BEGIN;  
    PRINT N'Invalid database';  
  END;  
ELSE IF @object_id IS NULL  
  BEGIN;  
    PRINT N'Invalid object';  
  END;  
ELSE  
  BEGIN;  
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  
  END;  
GO  

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

D.D. Devolver el identificador de la base de datos actualReturn the ID of the current database

En este ejemplo se devuelve el identificador de base de datos de la base de datos actual.This example returns the database ID of the current database.

SELECT DB_ID();  

E.E. Devolver el identificador de la base de datos con nombreReturn the ID of a named database.

En este ejemplo se devuelve el identificador de base de datos de la base de datos AdventureWorksDW2012.This example returns the database ID of the AdventureWorksDW2012 database.

SELECT DB_ID('AdventureWorksPDW2012');  

Vea tambiénSee also

DB_NAME (Transact-SQL)DB_NAME (Transact-SQL)
Funciones de metadatos (Transact-SQL)Metadata Functions (Transact-SQL)
sys.databases (Transact-SQL)sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)sys.dm_db_index_operational_stats (Transact-SQL)