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.