DB_ID (Transact-SQL)DB_ID (Transact-SQL)

Gilt für: JaSQL Server JaAzure SQL-Datenbank JaAzure Synapse Analytics (SQL DW) JaParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Diese Funktion gibt die Datenbank-ID für eine angegebene Datenbank zurück.This function returns the database identification (ID) number of a specified database.

Themenlinksymbol Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

DB_ID ( [ 'database_name' ] )   

ArgumenteArguments

'database_name''database_name'
Der Name der Datenbank, deren Datenbank-ID von DB_ID zurückgegeben wird.The name of the database whose database ID number DB_ID will return. Wenn database_name beim Aufruf von DB_ID ausgelassen wird, gibt DB_ID die ID der aktuellen Datenbank zurück.If the call to DB_ID omits database_name, DB_ID returns the ID of the current database.

RückgabetypenReturn types

intint

BemerkungenRemarks

DB_ID wird möglicherweise nur verwendet, um die Datenbank-ID der aktuellen Datenbank in Azure SQL-Datenbank zurückzugeben.DB_ID may only be used to return the database identifier of the current database in Azure SQL Database. NULL wird zurückgegeben, wenn der angegebene Datenbankname von dem der aktuellen Datenbank abweicht.NULL is returned if the specified database name is other than the current database.

Hinweis

Bei der Verwendung mit Azure SQL-Datenbank gibt DB_ID möglicherweise nicht dasselbe Ergebnis zurück wie das Abfragen von database_id in sys.databases.When used with Azure SQL Database, DB_ID may not return the same result as querying database_id from sys.databases. Wenn der Aufrufer von DB_ID das Ergebnis mit anderen sys-Ansichten vergleicht, sollte stattdessen sys.databases abgefragt werden.If the caller of DB_ID is comparing the result to other sys views, then sys.databases should be queried instead.

BerechtigungenPermissions

Wenn der Aufrufer von DB_ID keine spezifische Nicht-Master- oder Nicht-tempdb-Datenbank besitzt, sind mindestens die Berechtigungen ALTER ANY DATABASE oder VIEW ANY DATABASE auf Serverebene erforderlich, um die entsprechende DB_ID-Zeile anzuzeigen.If the caller of DB_ID does not own a specific non-master or non-tempdb database, ALTER ANY DATABASE or VIEW ANY DATABASE server-level permissions at minimum are required to see the corresponding DB_ID row. DB_ID benötigt zumindest die Berechtigung CREATE DATABASE für die Master-Datenbank.For the master database, DB_ID needs CREATE DATABASE permission at minimum. Die Datenbank, mit der der Aufrufer eine Verbindung herstellt, wird immer in sys.databases angezeigt.The database to which the caller connects will always appear in sys.databases.

Wichtig

Standardmäßig verfügt die öffentliche Rolle über die Berechtigung VIEW ANY DATABASE, sodass alle Anmeldenamen auf Datenbankinformationen zugreifen können.By default, the public role has the VIEW ANY DATABASE permission, which allows all logins to see database information. Verhindern Sie, dass ein Anmeldename eine Datenbank erkennt, indem Sie die Berechtigung VIEW ANY DATABASE mit REVOKE widerrufen, sodass sie nicht mehr öffentlich ist, oder die Berechtigung VIEW ANY DATABASE mit DENY für individuelle Anmeldungen verweigern.To prevent a login from detecting a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.

BeispieleExamples

A.A. Zurückgeben der Datenbank-ID der aktuellen DatenbankReturning the database ID of the current database

Im folgenden Beispiel wird die Datenbank-ID der aktuellen Datenbank zurückgegeben.This example returns the database ID of the current database.

SELECT DB_ID() AS [Database ID];  
GO  

B.B. Zurückgeben der Datenbank-ID einer angegebenen DatenbankReturning the database ID of a specified database

Im folgenden Beispiel wird die Datenbank-ID der AdventureWorks2012AdventureWorks2012-Datenbank zurückgegeben.This example returns the database ID of the AdventureWorks2012AdventureWorks2012 database.

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

C.C. Angeben des Werts eines Systemfunktionsparameters mithilfe von DB_IDUsing DB_ID to specify the value of a system function parameter

Im folgenden Beispiel wird mithilfe von DB_ID die Datenbank-ID der AdventureWorks2012AdventureWorks2012-Datenbank in der Systemfunktion sys.dm_db_index_operational_stats zurückgegeben.This example uses DB_ID to return the database ID of the AdventureWorks2012AdventureWorks2012 database in the system function sys.dm_db_index_operational_stats. Der erste Parameter dieser Funktion ist eine Datenbank-ID.The function takes a database ID as the first parameter.

DECLARE @db_id int;  
DECLARE @object_id int;  
SET @db_id = DB_ID(N'AdventureWorks2012');  
SET @object_id = OBJECT_ID(N'AdventureWorks2012.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  

Beispiele: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL DW) und Parallel Data WarehouseParallel Data Warehouse.Examples: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL DW) and Parallel Data WarehouseParallel Data Warehouse

D.D. Rückgabe der ID der aktuellen DatenbankReturn the ID of the current database

Im folgenden Beispiel wird die Datenbank-ID der aktuellen Datenbank zurückgegeben.This example returns the database ID of the current database.

SELECT DB_ID();  

E.E. Zurückgeben der ID der benannten Datenbank.Return the ID of a named database.

Im folgenden Beispiel wird die Datenbank-ID der AdventureWorksDW2012-Datenbank zurückgegeben.This example returns the database ID of the AdventureWorksDW2012 database.

SELECT DB_ID('AdventureWorksPDW2012');  

Siehe auchSee also

DB_NAME (Transact-SQL)DB_NAME (Transact-SQL)
Metadata Functions (Transact-SQL) (Metadatenfunktionen (Transact-SQL))Metadata Functions (Transact-SQL)
sys.databases (Transact-SQL)sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)sys.dm_db_index_operational_stats (Transact-SQL)