Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Cette fonction retourne le numéro d’identification (ID) de la base de données spécifiée.
Conventions de la syntaxe Transact-SQL
Syntaxe
DB_ID ( [ 'database_name' ] )
Arguments
'database_name'
Nom de la base de données dont le numéro d’ID DB_ID est retourné. Si l’appel à DB_ID omet database_name, DB_ID retourne l’ID de la base de données active.
Types de retour
int
Notes
DB_ID ne peut être utilisé que pour retourner l’identificateur de la base de données active dans Azure SQL Database. La valeur NULL est retournée si le nom spécifié n’est pas celui de la base de données active.
Notes
Dans Azure SQL Database, DB_ID peut ne pas retourner la même valeur que la colonne database_id dans sys.databases et sys.database_service_objectives. Ces deux vues retournent des valeurs database_id qui sont uniques au sein du serveur logique, alors que DB_ID et la colonne database_id dans d’autres vues système retournent des valeurs qui sont uniques au sein d’une base de données unique ou d’un pool élastique.
Autorisations
Si l’appelant de DB_ID ne possède pas une base de données non MASTER ou non tempdb spécifique, au minimum les autorisations au niveau serveur ALTER ANY DATABASE ou VIEW ANY DATABASE sont nécessaires pour consulter la ligne DB_ID correspondante. Pour la base de données MASTER, DB_ID a besoin au minimum de l’autorisation CREATE DATABASE. La base de données à laquelle l’appelant se connecte apparaît toujours dans sys.databases.
Important
Par défaut, le rôle public a l’autorisation VIEW ANY DATABASE, qui permet à toutes les connexions de consulter les informations de la base de données. Pour empêcher une connexion de détecter une base de données, révoquez (REVOKE) l’autorisation publique VIEW ANY DATABASE, ou refusez (DENY) l’autorisation VIEW ANY DATABASE pour les connexions individuelles.
Exemples
R. Retour de l'ID de la base de données active
L’exemple suivant retourne l’ID de la base de données active.
SELECT DB_ID() AS [Database ID];
GO
B. Retour de l'ID d'une base de données spécifique
L’exemple suivant retourne l’ID de la base de données AdventureWorks2025.
SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];
GO
C. Utilisation de DB_ID pour spécifier la valeur d'un paramètre de fonction système
L’exemple suivant utilise DB_ID pour retourner l’ID de la base de données AdventureWorks2025 dans la fonction système sys.dm_db_index_operational_stats. Le premier paramètre de la fonction est un ID de base de données.
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
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
D. Renvoi de l’ID de la base de données active
L’exemple suivant retourne l’ID de la base de données active.
SELECT DB_ID();
E. Renvoi de l’ID d’une base de données nommée
L'exemple suivant retourne l'ID de la base de données AdventureWorksDW2022.
SELECT DB_ID('AdventureWorksPDW2012');
Voir aussi
DB_NAME (Transact-SQL)
Fonctions de métadonnées (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)