Partilhar via


DB_ID (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade 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 and Analytics Platform System (PDW)

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');  

Ver também

DB_NAME (Transact-SQL)
Funções de metadados (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)