Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Эта функция возвращает идентификационный номер указанной базы данных.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DB_ID ( [ 'database_name' ] )
Аргументы
'database_name'
Имя базы данных, идентификационный номер которой вернет функция DB_ID
. Если в вызове DB_ID
аргумент database_name не указан, функция DB_ID
возвращает идентификатор текущей базы данных.
Типы возвращаемых данных
int
Замечания
DB_ID
может использоваться только для возврата идентификатора текущей базы данных в Базе данных SQL Azure. Если указанное имя базы данных отличается от текущей базы данных, возвращается значение NULL.
Примечание.
В База данных SQL Azure может не возвращать то же значение, DB_ID
что database_id
и столбец в sys.database и sys.database_service_objectives. Эти два представления возвращают уникальные значения в логическом сервере, а DB_ID
database_id
столбец в других системных представлениях возвращает database_id
значения, уникальные в пределах одной базы данных или в эластичном пуле.
Разрешения
Если участник, вызывающий DB_ID
, не является владельцем конкретной базы данных, отличной от базы данных master или tempdb, то минимальными разрешениями, необходимыми для просмотра соответствующей строки DB_ID
, являются разрешения уровня сервера ALTER ANY DATABASE
или VIEW ANY DATABASE
. Для базы данных master функция DB_ID
требует по крайней мере разрешения CREATE DATABASE
. База данных, к которой подключается вызывающий участник, всегда отображается в представлении sys.databases.
Внимание
По умолчанию общедоступная роль имеет разрешение VIEW ANY DATABASE
, что позволяет всем именам для входа просматривать информацию в базе данных. Чтобы имя для входа не могло обнаруживать базу данных, отзовите общедоступное разрешение VIEW ANY DATABASE
с помощью инструкции REVOKE
или отмените разрешение VIEW ANY DATABASE
для отдельных имен для входа с помощью инструкции DENY
.
Примеры
А. Возвращение идентификатора текущей базы данных
В приведенном ниже примере возвращается идентификатор текущей базы данных.
SELECT DB_ID() AS [Database ID];
GO
B. Возвращение идентификатора указанной базы данных
В приведенном ниже примере возвращается идентификатор базы данных AdventureWorks2022
.
SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];
GO
В. Использование DB_ID для указания значения параметра системной функции
В приведенном ниже примере функция DB_ID
используется для получения идентификатора базы данных AdventureWorks2022
в системной функции sys.dm_db_index_operational_stats
. Эта функция принимает идентификатор базы данных в качестве первого параметра.
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
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
D. Получение идентификатора текущей базы данных
В приведенном ниже примере возвращается идентификатор текущей базы данных.
SELECT DB_ID();
Е. Получение идентификатора именованной базы данных
В этом примере возвращается идентификатор базы данных базы данных базы данных AdventureWorksDW2022.
SELECT DB_ID('AdventureWorksPDW2012');
См. также
DB_NAME (Transact-SQL)
Функции метаданных (Transact-SQL)
sys.databases (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)