DB_ID (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Esta função retorna o número de identificação (ID) do banco de dados de um banco de dados especificado.

Transact-SQL convenções de sintaxe

Sintaxe

DB_ID ( [ 'database_name' ] )   

Argumentos

'database_name'
O nome do banco de dados cujo número DB_ID de ID do banco de dados retornará. Se a chamada para DB_ID omitir database_name, DB_ID retornará a ID do banco de dados atual.

Tipos de devolução

int

Observações

DB_ID só pode ser usado para retornar o identificador de banco de dados do banco de dados atual no Banco de Dados SQL do Azure. NULL será retornado se o nome do banco de dados especificado for diferente do banco de dados atual.

Observação

No Banco de Dados SQL do Azure, DB_ID pode não retornar o mesmo valor que a database_id coluna em sys.databases e sys.database_service_objetives. Essas duas exibições retornam database_id valores que são exclusivos dentro do servidor lógico, enquanto DB_ID e a coluna em outras exibições do database_id sistema retornam valores que são exclusivos dentro de um único banco de dados ou dentro de um pool elástico.

Permissões

Se o chamador de não possuir um banco de dados DB_ID ou não-tempdb específico, ou ALTER ANY DATABASE permissões no nível de VIEW ANY DATABASE servidor no mínimo são necessárias para ver a linha correspondenteDB_ID. Para o banco de dados mestre , DB_ID precisa CREATE DATABASE de permissão no mínimo. O banco de dados ao qual o chamador se conecta sempre aparecerá em sys.databases.

Importante

Por padrão, a função pública tem a VIEW ANY DATABASE permissão, que permite que todos os logons vejam as informações do banco de dados. Para impedir que um logon detete um banco de dados, REVOKE a VIEW ANY DATABASE permissão do público ou DENY a VIEW ANY DATABASE permissão para logins individuais.

Exemplos

Um. Retornando a ID do banco de dados atual

Este exemplo retorna a ID do banco de dados atual.

SELECT DB_ID() AS [Database ID];  
GO  

B. Retornando a ID do banco de dados de um banco de dados especificado

Este exemplo retorna a ID do banco de AdventureWorks2025 dados.

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

C. Usando DB_ID para especificar o valor de um parâmetro de função do sistema

Este exemplo usa DB_ID para retornar a ID do banco de AdventureWorks2025 dados no sistema função sys.dm_db_index_operational_stats. A função usa um ID de banco de dados como o primeiro parâmetro.

DECLARE @db_id INT;  
DECLARE @object_id INT;  
SET @db_id = DB_ID(N'AdventureWorks2022');  
SET @object_id = OBJECT_ID(N'AdventureWorks2022.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  

Exemplos: Azure Synapse Analytics

D. Retornar a ID do banco de dados atual

Este exemplo retorna a ID do banco de dados atual.

SELECT DB_ID();  

E. Retornar a ID de um banco de dados nomeado.

Este exemplo retorna a ID do banco de dados AdventureWorksDW2022.

SELECT DB_ID('AdventureWorksPDW2012');