No SQL Server, você pode usar o
DB_ID()
função para retornar o ID do banco de dados atual ou outro banco de dados especificado. A forma como funciona é, você passa o nome do banco de dados como argumento, e então a função retornará o ID desse banco de dados. Se você não passar um nome, ele retornará o ID do banco de dados atual.
Exemplo 1 – Retornar o banco de dados atual
Aqui está um exemplo básico para demonstrar como retornar o nome do banco de dados atual.
SELECT DB_ID() AS [Current Database];
Resultado:
+--------------------+ | Current Database | |--------------------| | 6 | +--------------------+
Nesse caso, o banco de dados atual tem um ID de 6.
Aqui está outro exemplo que demonstra isso ainda mais, alternando bancos de dados.
USE Music; SELECT DB_ID() AS [Current Database]; USE EMS; SELECT DB_ID() AS [Current Database]; USE WideWorldImportersDW; SELECT DB_ID() AS [Current Database];
Resultado:
Changed database context to 'Music'. +--------------------+ | Current Database | |--------------------| | 5 | +--------------------+ (1 row affected) Changed database context to 'EMS'. +--------------------+ | Current Database | |--------------------| | 14 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +--------------------+ | Current Database | |--------------------| | 6 | +--------------------+ (1 row affected)
Exemplo 2 – Retornar um banco de dados específico
Aqui está um exemplo de retorno de um banco de dados específico. Isso é feito passando o nome do banco de dados.
SELECT DB_ID('Music') AS Result;
Resultado:
+----------+ | Result | |----------| | 5 | +----------+
Aqui está mais:
SELECT DB_ID('master') AS [master], DB_ID('tempdb') AS [tempdb], DB_ID('model') AS [model], DB_ID('msdb') AS [msdb], DB_ID('Music') AS [Music], DB_ID('WideWorldImportersDW') AS ['WideWorldImportersDW'];
Resultado:
+----------+----------+---------+--------+---------+--------------------------+ | master | tempdb | model | msdb | Music | 'WideWorldImportersDW' | |----------+----------+---------+--------+---------+--------------------------| | 1 | 2 | 3 | 4 | 5 | 6 | +----------+----------+---------+--------+---------+--------------------------+
Exemplo 3 – Uma consulta de banco de dados
Aqui está um exemplo de onde
DB_ID()
poderia vir a calhar. USE WideWorldImportersDW; SELECT name AS [Foreign Key], OBJECT_NAME(parent_object_id, DB_ID('Music')) AS [Parent Object Name], OBJECT_NAME(referenced_object_id, DB_ID('Music')) AS [Referenced Object Name] FROM Music.sys.foreign_keys WHERE name = 'FK_Artists_Country';
Resultado:
Changed database context to 'WideWorldImportersDW'. +--------------------+----------------------+--------------------------+ | Foreign Key | Parent Object Name | Referenced Object Name | |--------------------+----------------------+--------------------------| | FK_Artists_Country | Artists | Country | +--------------------+----------------------+--------------------------+ (1 row affected)
Neste exemplo, o banco de dados atual é WideWorldImportersDW, mas quero informações sobre uma chave estrangeira no banco de dados Música. O
OBJECT_NAME()
A função retorna o nome do objeto com base em seu ID, mas se o objeto estiver em um banco de dados diferente, ela também me permite especificar o ID do banco de dados. No entanto, neste caso eu só sei o nome do banco de dados. Não é um problema, porque eu posso usar DB_ID()
para retornar o ID com base no nome.