Udostępnij za pomocą


DB_ID (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Ta funkcja zwraca numer identyfikacyjny bazy danych (ID) określonej bazy danych.

Transact-SQL konwencje składni

Składnia

DB_ID ( [ 'database_name' ] )   

Argumenty (w programowaniu)

"database_name"
Zostanie zwrócona nazwa bazy danych, której identyfikator DB_ID bazy danych zostanie zwrócony. Jeśli wywołanie DB_ID metody pomija database_name, DB_ID zwraca identyfikator bieżącej bazy danych.

Typy zwracane

int

Uwagi

DB_ID może służyć tylko do zwracania identyfikatora bazy danych bieżącej bazy danych w usłudze Azure SQL Database. Wartość NULL jest zwracana, jeśli określona nazwa bazy danych jest inna niż bieżąca baza danych.

Uwaga / Notatka

W usłudze Azure SQL Database DB_ID może nie zwracać tej samej wartości co kolumna database_id w pliku sys.databases i sys.database_service_objectives. Te dwa widoki zwracają database_id wartości, które są unikatowe na serwerze logicznym, a DB_ID kolumna database_id w innych widokach systemowych zwraca wartości unikatowe w ramach pojedynczej bazy danych lub w puli elastycznej.

Uprawnienia

Jeśli obiekt wywołujący DB_ID elementu nie jest właścicielem określonej bazy danych innej niż master lub nienależące do bazy danych tempdb lub ALTER ANY DATABASEVIEW ANY DATABASE uprawnienia na poziomie serwera co najmniej są wymagane do wyświetlenia odpowiedniego DB_ID wiersza. W przypadku bazy danych DB_ID musi CREATE DATABASE mieć co najmniej uprawnienia. Baza danych, z którą łączy się obiekt wywołujący, będzie zawsze wyświetlana w pliku sys.databases.

Ważne

Domyślnie rola publiczna ma VIEW ANY DATABASE uprawnienie, które umożliwia wszystkim identyfikatorom logowania wyświetlanie informacji o bazie danych. Aby uniemożliwić logowanie się do wykrywania bazy danych, REVOKEVIEW ANY DATABASE uprawnienia z publicznej strony lub DENYVIEW ANY DATABASE uprawnienia do poszczególnych logowań.

Przykłady

Odp. Zwracanie identyfikatora bazy danych bieżącej bazy danych

Ten przykład zwraca identyfikator bazy danych bieżącej bazy danych.

SELECT DB_ID() AS [Database ID];  
GO  

B. Zwracanie identyfikatora bazy danych określonej bazy danych

Ten przykład zwraca identyfikator AdventureWorks2025 bazy danych bazy danych.

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

C. Używanie DB_ID do określania wartości parametru funkcji systemowej

W tym przykładzie użyto DB_ID metody do zwrócenia identyfikatora AdventureWorks2025 bazy danych w funkcji sys.dm_db_index_operational_statssystemowej . Funkcja przyjmuje identyfikator bazy danych jako pierwszy 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  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Zwraca identyfikator bieżącej bazy danych

Ten przykład zwraca identyfikator bazy danych bieżącej bazy danych.

SELECT DB_ID();  

E. Zwróć identyfikator nazwanej bazy danych.

Ten przykład zwraca identyfikator bazy danych AdventureWorksDW2022.

SELECT DB_ID('AdventureWorksPDW2012');  

Zobacz także

DB_NAME (Transact-SQL)
Funkcje metadanych (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)