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

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve el número de identificación (identificador) de la base de datos.Returns the database identification (ID) number.

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'
Es el nombre de base de datos que se utiliza para devolver el Id. de base de datos correspondiente.Is the database name used to return the corresponding database ID. database_name es sysname.database_name is sysname. Si database_name es se omite, se devuelve el identificador de base de datos actual.If database_name is omitted, the current database ID is returned.

Tipos de valor devueltoReturn types

intint

PermissionsPermissions

Si el autor de llamada de DB_ID no es el propietario de la base de datos y la base de datos no es maestro o tempdb, los permisos mínimos necesarios para ver la fila correspondiente son Permiso de nivel de servidor ALTER ANY DATABASE o VIEW ANY DATABASE o permiso CREATE DATABASE en la maestro base de datos.If the caller of DB_ID 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. La base de datos a la que está conectado el autor de la llamada siempre se puede ver en sys.databases.The database to which the caller is connected can always be viewed in sys.databases.

Importante

De forma predeterminada, la función public tiene el permiso VIEW ANY DATABASE, lo que permite 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, allowing all logins to see database information. Para bloquear un inicio de sesión de la capacidad para detectar una base de datos, REVOCAR el permiso VIEW ANY DATABASE de pública o denegar el permiso VIEW ANY DATABASE para inicios de sesión individuales.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.

EjemplosExamples

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

El siguiente ejemplo devuelve el Id. de base de datos de la base de datos actual.The following 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 el ejemplo siguiente se devuelve el identificador de base de datos de la AdventureWorks2012AdventureWorks2012 base de datos.The following 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 el ejemplo siguiente se utiliza DBID para devolver el identificador de base de datos de la AdventureWorks2012AdventureWorks2012 base de datos en la función del sistema sys.dm_db \ index _ operational _ stats.The following example uses DBID 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. Devuelve el identificador de la base de datos actualReturn the ID of the current database

El siguiente ejemplo devuelve el Id. de base de datos de la base de datos actual.The following example returns the database ID of the current database.

SELECT DB_ID();  

E.E. Devuelve el identificador de una base de datos con nombre.Return the ID of a named database.

En el ejemplo siguiente se devuelve el identificador de base de datos de la base de datos AdventureWorksDW2012.The following 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)