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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Эта функция возвращает идентификационный номер указанной базы данных.This function returns the database identification (ID) number of a specified database.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

DB_ID ( [ 'database_name' ] )   

АргументыArguments

'database_name''database_name'
Имя базы данных, идентификационный номер которой вернет функция DB_ID.The name of the database whose database ID number DB_ID will return. Если в вызове DB_ID аргумент database_name не указан, функция DB_ID возвращает идентификатор текущей базы данных.If the call to DB_ID omits database_name, DB_ID returns the ID of the current database.

Типы возвращаемых данныхReturn types

intint

RemarksRemarks

DB_ID может использоваться только для возврата идентификатора текущей базы данных в Базе данных SQL Azure.DB_ID may only be used to return the database identifier of the current database in Azure SQL Database. Если указанное имя базы данных отличается от текущей базы данных, возвращается значение NULL.NULL is returned if the specified database name is other than the current database.

Примечание

При использовании с Базой данных SQL Azure DB_ID может вернуть не такой результат, как при запросе database_id из представления sys.databases.When used with Azure SQL Database, DB_ID may not return the same result as querying database_id from sys.databases. Если объект, вызывающий DB_ID, сравнивает результат с другими представлениями sys, то вместо этого следует отправить запрос к представлению sys. databases.If the caller of DB_ID is comparing the result to other sys views, then sys.databases should be queried instead.

РазрешенияPermissions

Если участник, вызывающий DB_ID, не является владельцем конкретной базы данных, отличной от базы данных master или tempdb, то минимальными разрешениями, необходимыми для просмотра соответствующей строки ALTER ANY DATABASE, являются разрешения уровня сервера VIEW ANY DATABASE или DB_ID.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. Для базы данных master функция DB_ID требует по крайней мере разрешения CREATE DATABASE.For the master database, DB_ID needs CREATE DATABASE permission at minimum. База данных, к которой подключается вызывающий участник, всегда отображается в представлении sys.databases.The database to which the caller connects will always appear in sys.databases.

Важно!

По умолчанию общедоступная роль имеет разрешение VIEW ANY DATABASE, что позволяет всем именам для входа просматривать информацию в базе данных.By default, the public role has the VIEW ANY DATABASE permission, which allows all logins to see database information. Чтобы имя для входа не могло обнаруживать базу данных, отзовите общедоступное разрешение REVOKE с помощью инструкции VIEW ANY DATABASE или отмените разрешение DENY для отдельных имен для входа с помощью инструкции VIEW ANY DATABASE.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.

ПримерыExamples

A.A. Возвращение идентификатора текущей базы данныхReturning the database ID of the current database

В приведенном ниже примере возвращается идентификатор текущей базы данных.This example returns the database ID of the current database.

SELECT DB_ID() AS [Database ID];  
GO  

Б.B. Возвращение идентификатора указанной базы данныхReturning the database ID of a specified database

В приведенном ниже примере возвращается идентификатор базы данных AdventureWorks2012AdventureWorks2012.This example returns the database ID of the AdventureWorks2012AdventureWorks2012 database.

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

В.C. Использование DB_ID для указания значения параметра системной функцииUsing DB_ID to specify the value of a system function parameter

В приведенном ниже примере функция DB_ID используется для получения идентификатора базы данных AdventureWorks2012AdventureWorks2012 в системной функции sys.dm_db_index_operational_stats.This example uses DB_ID to return the database ID of the AdventureWorks2012AdventureWorks2012 database in the system function sys.dm_db_index_operational_stats. Эта функция принимает идентификатор базы данных в качестве первого параметра.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  

Примеры: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

Г.D. Получение идентификатора текущей базы данныхReturn the ID of the current database

В приведенном ниже примере возвращается идентификатор текущей базы данных.This example returns the database ID of the current database.

SELECT DB_ID();  

Д.E. Получение идентификатора именованной базы данныхReturn the ID of a named database.

В приведенном ниже примере возвращается идентификатор базы данных AdventureWorksDW2012.This example returns the database ID of the AdventureWorksDW2012 database.

SELECT DB_ID('AdventureWorksPDW2012');  

См. также разделSee also

DB_NAME (Transact-SQL)DB_NAME (Transact-SQL)
Функции метаданных (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)