Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Tato funkce vrátí identifikační číslo databáze (ID) zadané databáze.
Syntaxe
DB_ID ( [ 'database_name' ] )
Argumenty
"database_name"
Název databáze, jejíž číslo DB_ID ID databáze se vrátí. Pokud volání DB_ID vynechá database_name, DB_ID vrátí ID aktuální databáze.
Návratové typy
int
Poznámky
DB_ID lze použít pouze k vrácení identifikátoru databáze aktuální databáze ve službě Azure SQL Database. Hodnota NULL se vrátí, pokud je zadaný název databáze jiný než aktuální databáze.
Poznámka:
Ve službě Azure SQL Database DB_ID nemusí vrátit stejnou hodnotu jako database_id sloupec v sys.databases a sys.database_service_objectives. Tato dvě zobrazení vrací database_id hodnoty, které jsou jedinečné v rámci logického serveru, zatímco DB_ID sloupec database_id v jiných systémových zobrazeních vrací hodnoty, které jsou jedinečné v rámci jedné databáze nebo v rámci elastického fondu.
Povolení
Pokud volající nevlastní konkrétní databázi, která není DB_ID nebo jiná než databáze tempdb, nebo ALTER ANY DATABASE jsou pro zobrazení odpovídajícího VIEW ANY DATABASEDB_ID řádku vyžadována minimálně oprávnění na úrovni serveru. Pro hlavní databázi vyžaduje DB_IDCREATE DATABASE minimálně oprávnění. Databáze, ke které se volající připojuje, se vždy zobrazí v sys.databases.
Důležité
Ve výchozím nastavení má VIEW ANY DATABASE veřejná role oprávnění, která umožňuje všem přihlášením zobrazit informace o databázi. Pokud chcete zabránit přihlášení ke zjištění databáze, REVOKEVIEW ANY DATABASE oprávnění z veřejného účtu nebo DENYVIEW ANY DATABASE oprávnění pro jednotlivá přihlášení.
Příklady
A. Vrácení ID databáze aktuální databáze
Tento příklad vrátí ID databáze aktuální databáze.
SELECT DB_ID() AS [Database ID];
GO
B. Vrácení ID databáze zadané databáze
Tento příklad vrátí ID AdventureWorks2025 databáze databáze.
SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];
GO
C. Určení hodnoty parametru systémové funkce pomocí DB_ID
Tento příklad používá DB_ID k vrácení ID AdventureWorks2025 databáze databáze v systémové funkci sys.dm_db_index_operational_stats. Funkce přebírá ID databáze jako první parametr.
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
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
D. Vrátí ID aktuální databáze.
Tento příklad vrátí ID databáze aktuální databáze.
SELECT DB_ID();
E. Vrátí ID pojmenované databáze.
Tento příklad vrátí ID databáze AdventureWorksDW2022.
SELECT DB_ID('AdventureWorksPDW2012');
Viz také
DB_NAME (Transact-SQL)
Funkce metadat (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)