Megosztás a következőn keresztül:


DB_ID (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Ez a függvény egy megadott adatbázis adatbázisazonosítási (azonosító) számát adja vissza.

Transact-SQL szintaxis konvenciók

Szemantika

DB_ID ( [ 'database_name' ] )   

Érvek

"database_name"
Annak az adatbázisnak a neve, amelynek az adatbázis-azonosítószáma DB_ID vissza fog térni. Ha a hívás DB_ID kihagyja database_name, DB_ID az aktuális adatbázis azonosítóját adja vissza.

Visszatérési típusok

int

Megjegyzések

DB_ID csak az aktuális adatbázis adatbázis-azonosítójának visszaadására használható az Azure SQL Database-ben. NULL értéket ad vissza, ha a megadott adatbázisnév nem az aktuális adatbázis.

Megjegyzés:

Az Azure SQL Database-ben előfordulhat, hogy nem ugyanazt az értéket adja vissza, DB_ID mint a database_id és a sys.database_service_objectives oszlop. Ez a két nézet a logikai kiszolgálón belül egyedi értékeket ad vissza database_id , míg DB_ID a database_id többi rendszernézet oszlopa egyedi értékeket ad vissza egyetlen adatbázisban vagy rugalmas készletben.

Engedélyek

Ha a hívó DB_ID nem rendelkezik egy adott nem főkiszolgálói vagy nem tempdb-adatbázissal , ALTER ANY DATABASE vagy VIEW ANY DATABASE legalább kiszolgálószintű engedélyekre van szükség a megfelelő DB_ID sor megtekintéséhez. A főadatbázishoz DB_ID legalább engedélyre van szükség.CREATE DATABASE Az adatbázis, amelyhez a hívó csatlakozik, mindig megjelenik a sys.databases-ben.

Fontos

Alapértelmezés szerint a nyilvános szerepkör rendelkezik az VIEW ANY DATABASE engedéllyel, amely lehetővé teszi az összes bejelentkezés számára az adatbázis-információk megtekintését. Annak érdekében, hogy a bejelentkezés ne észlelje az adatbázist, REVOKE a VIEW ANY DATABASE nyilvános DENY vagy az VIEW ANY DATABASE egyes bejelentkezések engedélyét.

Példák

Egy. Az aktuális adatbázis adatbázis-azonosítójának visszaadása

Ez a példa az aktuális adatbázis adatbázis-azonosítóját adja vissza.

SELECT DB_ID() AS [Database ID];  
GO  

B. Adott adatbázis adatbázis-azonosítójának visszaadása

Ez a példa az adatbázis adatbázis-azonosítóját AdventureWorks2025 adja vissza.

SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];  
GO  

C. Rendszerfüggvény paraméter értékének megadása DB_ID használatával

Ez a példa az adatbázis adatbázis-azonosítóját DB_ID adja AdventureWorks2025 vissza a rendszerfüggvénybensys.dm_db_index_operational_stats. A függvény első paraméterként egy adatbázis-azonosítót vesz fel.

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éldák: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Az aktuális adatbázis azonosítójának visszaadása

Ez a példa az aktuális adatbázis adatbázis-azonosítóját adja vissza.

SELECT DB_ID();  

E. Adja vissza egy elnevezett adatbázis azonosítóját.

Ez a példa az AdventureWorksDW2022 adatbázis-azonosítóját adja vissza.

SELECT DB_ID('AdventureWorksPDW2012');  

Lásd még

DB_NAME (Transact-SQL)
Metaadatfüggvények (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)