sql >> Databáze >  >> RDS >> Sqlserver

Použijte DB_ID() k vrácení ID databáze na SQL Server

V SQL Server můžete použít DB_ID() funkce pro vrácení ID aktuální databáze nebo jiné zadané databáze.

Funguje to tak, že předáte název databáze jako argument a pak funkce vrátí ID této databáze. Pokud nezadáte jméno, vrátí ID aktuální databáze.

Příklad 1 – Návrat aktuální databáze

Zde je základní příklad, který demonstruje, jak vrátit název aktuální databáze.

SELECT DB_ID() AS [Current Database];

Výsledek:

+--------------------+
| Current Database   |
|--------------------|
| 6                  |
+--------------------+

V tomto případě má aktuální databáze ID 6.

Zde je další příklad, který to dále demonstruje přepínáním databází.

USE Music;
SELECT DB_ID() AS [Current Database];

USE EMS;
SELECT DB_ID() AS [Current Database];

USE WideWorldImportersDW;
SELECT DB_ID() AS [Current Database];

Výsledek:

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)

Příklad 2 – Vrácení konkrétní databáze

Zde je příklad vrácení konkrétní databáze. To se provádí předáním názvu databáze.

SELECT DB_ID('Music') AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| 5        |
+----------+

Zde je více:

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

Výsledek:

+----------+----------+---------+--------+---------+--------------------------+
| master   | tempdb   | model   | msdb   | Music   | 'WideWorldImportersDW'   |
|----------+----------+---------+--------+---------+--------------------------|
| 1        | 2        | 3       | 4      | 5       | 6                        |
+----------+----------+---------+--------+---------+--------------------------+

Příklad 3 – Databázový dotaz

Zde je příklad, kde DB_ID() by se mohlo hodit.

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

Výsledek:

Changed database context to 'WideWorldImportersDW'.
+--------------------+----------------------+--------------------------+
| Foreign Key        | Parent Object Name   | Referenced Object Name   |
|--------------------+----------------------+--------------------------|
| FK_Artists_Country | Artists              | Country                  |
+--------------------+----------------------+--------------------------+
(1 row affected)

V tomto příkladu je aktuální databáze WideWorldImportersDW, ale chci informace o cizím klíči v databázi Music. OBJECT_NAME() Funkce vrací název objektu na základě jeho ID, ale pokud je objekt v jiné databázi, umožňuje mi také zadat ID databáze. V tomto případě však znám pouze název databáze. To však není problém, protože mohu použít DB_ID() vrátit ID na základě jména.


  1. Pivoting dat pomocí dvou sloupců

  2. Jak vybrat data tabulky z jiné databáze v SQL Server?

  3. Jak spustit makro z navigačního tlačítka v aplikaci Access

  4. Manipulace s potvrzením e-mailu během registrace v baňce