Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Met deze functie wordt het id-nummer (databaseidentificatie) van een opgegeven database geretourneerd.
Transact-SQL syntaxis-conventies
Syntaxis
DB_ID ( [ 'database_name' ] )
Argumenten
'database_name'
De naam van de database waarvan het database-id-nummer DB_ID wordt geretourneerd. Als de aanroep om database_name weg te DB_ID laten, DB_ID wordt de id van de huidige database geretourneerd.
Retourtypen
int
Opmerkingen
DB_ID mag alleen worden gebruikt om de database-id van de huidige database in Azure SQL Database te retourneren. NULL wordt geretourneerd als de opgegeven databasenaam anders is dan de huidige database.
Opmerking
In Azure SQL Database DB_ID wordt mogelijk niet dezelfde waarde geretourneerd als de database_id kolom in sys.databases en sys.database_service_objectives. Deze twee weergaven retourneren waarden die uniek zijn binnen de logische server, terwijl DB_ID en de database_id kolom in andere systeemweergaven waarden retourneert database_id die uniek zijn binnen één database of binnen een elastische pool.
Machtigingen
Als de aanroeper niet eigenaar is van DB_ID een specifieke niet-master - of niet-tempdb-database , ALTER ANY DATABASE of VIEW ANY DATABASE machtigingen op serverniveau zijn vereist om de bijbehorende DB_ID rij te zien. Voor de hoofddatabaseDB_ID moet u minimaal machtigingen hebben CREATE DATABASE . De database waarmee de aanroeper verbinding maakt, wordt altijd weergegeven in sys.databases.
Belangrijk
De openbare rol heeft standaard de VIEW ANY DATABASE machtiging, zodat alle aanmeldingen databasegegevens kunnen zien. Om te voorkomen dat een aanmelding een database detecteert, REVOKE de VIEW ANY DATABASE machtiging van openbaar of DENY de VIEW ANY DATABASE machtiging voor afzonderlijke aanmeldingen.
Voorbeelden
Eén. De database-id van de huidige database retourneren
In dit voorbeeld wordt de database-id van de huidige database geretourneerd.
SELECT DB_ID() AS [Database ID];
GO
B. De database-id van een opgegeven database retourneren
In dit voorbeeld wordt de database-id van de AdventureWorks2022 database geretourneerd.
SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];
GO
C. Met DB_ID de waarde van een systeemfunctieparameter opgeven
In dit voorbeeld wordt de DB_ID database-id van de AdventureWorks2022 database in de systeemfunctie sys.dm_db_index_operational_statsgeretourneerd. De functie gebruikt een database-id als de eerste parameter.
DECLARE @db_id INT;
DECLARE @object_id INT;
SET @db_id = DB_ID(N'AdventureWorks2022');
SET @object_id = OBJECT_ID(N'AdventureWorks2022.Person.Address');
IF @db_id IS NULL
BEGIN;
PRINT N'Invalid database';
END;
ELSE IF @object_id IS NULL
BEGIN;
PRINT N'Invalid object';
END;
ELSE
BEGIN;
SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);
END;
GO
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
D. De id van de huidige database retourneren
In dit voorbeeld wordt de database-id van de huidige database geretourneerd.
SELECT DB_ID();
E. Retourneert de id van een benoemde database.
In dit voorbeeld wordt de database-id van de AdventureWorksDW2022-database geretourneerd.
SELECT DB_ID('AdventureWorksPDW2012');
Zie ook
DB_NAME (Transact-SQL)
Metagegevensfuncties (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)