Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Użyj DB_ID(), aby zwrócić identyfikator bazy danych w SQL Server

W SQL Server możesz użyć DB_ID() funkcja zwracająca identyfikator bieżącej bazy danych lub innej określonej bazy danych.

Działa to tak, że jako argument podajesz nazwę bazy danych, a następnie funkcja zwróci identyfikator tej bazy danych. Jeśli nie podasz nazwy, zwróci identyfikator bieżącej bazy danych.

Przykład 1 – Zwróć bieżącą bazę danych

Oto podstawowy przykład pokazujący, jak zwrócić nazwę bieżącej bazy danych.

SELECT DB_ID() AS [Current Database];

Wynik:

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

W takim przypadku bieżąca baza danych ma identyfikator 6.

Oto kolejny przykład, który jeszcze bardziej to demonstruje, zmieniając bazy danych.

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

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

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

Wynik:

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)

Przykład 2 – Zwróć określoną bazę danych

Oto przykład zwracania konkretnej bazy danych. Odbywa się to poprzez przekazanie nazwy bazy danych.

SELECT DB_ID('Music') AS Result;

Wynik:

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

Oto więcej:

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

Wynik:

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

Przykład 3 – Zapytanie do bazy danych

Oto przykład, gdzie DB_ID() może się przydać.

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

Wynik:

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

W tym przykładzie bieżąca baza danych to WideWorldImportersDW, ale chcę uzyskać informacje o kluczu obcym w bazie danych Music. OBJECT_NAME() funkcja zwraca nazwę obiektu na podstawie jego identyfikatora, ale jeśli obiekt znajduje się w innej bazie danych, pozwala mi również określić identyfikator bazy danych. Jednak w tym przypadku znam tylko nazwę bazy danych. Nie jest to jednak problem, ponieważ mogę użyć DB_ID() aby zwrócić identyfikator na podstawie nazwiska.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:WYBIERZ tylko wiersze z MAX(DATE)

  2. Kolejność instrukcji SQL Select bez klauzuli Order By

  3. Przechowywanie obrazów w SQL Server?

  4. Grupy konwersacyjne dla brokerów usług SQL Server

  5. SQL Server 2016:Utwórz relację