Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza 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)