sql >> Database >  >> RDS >> Sqlserver

Gebruik DB_ID() om de ID van een database in SQL Server te retourneren

In SQL Server kunt u de DB_ID() functie om de ID van de huidige database of een andere gespecificeerde database te retourneren.

De manier waarop het werkt is, je geeft de naam van de database door als argument, en dan zal de functie de ID van die database teruggeven. Als u geen naam doorgeeft, wordt de ID van de huidige database geretourneerd.

Voorbeeld 1 – Geef de huidige database terug

Hier is een eenvoudig voorbeeld om te demonstreren hoe u de naam van de huidige database kunt retourneren.

SELECT DB_ID() AS [Current Database];

Resultaat:

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

In dit geval heeft de huidige database een ID van 6.

Hier is nog een voorbeeld dat het verder demonstreert, door van database te wisselen.

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

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

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

Resultaat:

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)

Voorbeeld 2 – Een specifieke database retourneren

Hier is een voorbeeld van het retourneren van een specifieke database. Dit wordt gedaan door de naam van de database door te geven.

SELECT DB_ID('Music') AS Result;

Resultaat:

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

Hier is meer:

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

Resultaat:

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

Voorbeeld 3 – Een databasequery

Hier is een voorbeeld van waar DB_ID() van pas kunnen komen.

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

Resultaat:

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

In dit voorbeeld is de huidige database WideWorldImportersDW, maar ik wil informatie over een externe sleutel in de muziekdatabase. De OBJECT_NAME() functie retourneert de objectnaam op basis van zijn ID, maar als het object zich in een andere database bevindt, kan ik ook de database-ID opgeven. In dit geval ken ik echter alleen de databasenaam. Geen probleem, want ik kan DB_ID() . gebruiken om de ID te retourneren op basis van de naam.


  1. Hoe de datum te selecteren in de datetime-kolom?

  2. Hoe een gebruiker aan te maken in MySQL

  3. Oracle-queryresultaten exporteren naar een JSON-bestand bij gebruik van SQLcl

  4. Code om SQL-scripts te valideren