I SQL Server kan du bruge DB_ID()
funktion for at returnere ID'et for den aktuelle database eller en anden specificeret database.
Den måde, det fungerer på, er, at du videregiver navnet på databasen som et argument, og derefter vil funktionen returnere databasens ID. Hvis du ikke giver et navn, vil det returnere ID'et for den aktuelle database.
Eksempel 1 – Returner den aktuelle database
Her er et grundlæggende eksempel for at demonstrere, hvordan man returnerer navnet på den aktuelle database.
SELECT DB_ID() AS [Current Database];
Resultat:
+--------------------+ | Current Database | |--------------------| | 6 | +--------------------+
I dette tilfælde har den aktuelle database et ID på 6.
Her er et andet eksempel, der demonstrerer det yderligere, ved at skifte database.
USE Music; SELECT DB_ID() AS [Current Database]; USE EMS; SELECT DB_ID() AS [Current Database]; USE WideWorldImportersDW; SELECT DB_ID() AS [Current Database];
Resultat:
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)
Eksempel 2 – Returner en specifik database
Her er et eksempel på returnering af en specifik database. Dette gøres ved at indtaste navnet på databasen.
SELECT DB_ID('Music') AS Result;
Resultat:
+----------+ | Result | |----------| | 5 | +----------+
Her er mere:
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'];
Resultat:
+----------+----------+---------+--------+---------+--------------------------+ | master | tempdb | model | msdb | Music | 'WideWorldImportersDW' | |----------+----------+---------+--------+---------+--------------------------| | 1 | 2 | 3 | 4 | 5 | 6 | +----------+----------+---------+--------+---------+--------------------------+
Eksempel 3 – En databaseforespørgsel
Her er et eksempel på hvor DB_ID()
kunne komme til nytte.
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';
Resultat:
Changed database context to 'WideWorldImportersDW'. +--------------------+----------------------+--------------------------+ | Foreign Key | Parent Object Name | Referenced Object Name | |--------------------+----------------------+--------------------------| | FK_Artists_Country | Artists | Country | +--------------------+----------------------+--------------------------+ (1 row affected)
I dette eksempel er den aktuelle database WideWorldImportersDW, men jeg vil have information om en fremmednøgle i Music-databasen. OBJECT_NAME()
funktion returnerer objektnavnet baseret på dets ID, men hvis objektet er i en anden database, giver det mig også mulighed for at angive database-id'et. Men i dette tilfælde kender jeg kun databasenavnet. Dog ikke et problem, fordi jeg kan bruge DB_ID()
for at returnere ID'et baseret på navnet.