События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Возвращает идентификационный номер объекта базы данных для объекта области схемы.
Объекты, которые не ограничены схемой, такие как триггеры языка определения данных (DDL), не могут запрашиваться с помощью OBJECT_ID
. Для объектов, которые не найдены в представлении каталога sys.objects , получите идентификационные номера объектов, запрашивая соответствующее представление каталога. Например, чтобы получить идентификационный номер триггера DDL, используйте инструкцию SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'
.
Соглашения о синтаксисе Transact-SQL
OBJECT_ID ( ' [ database_name . [ schema_name ] . | schema_name . ]
object_name' [ , 'object_type' ] )
Объект, который должен использоваться. Аргумент object_name имеет тип varchar или nvarchar. Значение varchar object_name неявно преобразуется в nvarchar. Не обязательно указывать имена базы данных и схемы.
Тип объекта с областью схемы. Аргумент object_type имеет тип varchar или nvarchar. Значение varchar object_type неявно преобразуется в nvarchar. Список типов объектов содержится в столбце type представления sys.objects (Transact-SQL).
int
Для пространственного индекса OBJECT_ID
возвращается NULL
.
Возвращает ошибку NULL
.
Пользователь может просматривать только метаданные защищаемых объектов, принадлежащих пользователю, или разрешения на доступ пользователя. Это означает, что встроенные функции метаданных, такие как OBJECT_ID
могут возвращать NULL
, если у пользователя нет разрешения на объект. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Если параметр системной функции является необязательным, то предполагаются текущие база данных, главный компьютер, пользователь сервера или пользователь базы данных. Необходимо всегда следовать встроенным функциям с круглыми скобками.
При указании имени временной таблицы имя базы данных должно быть до имени временной таблицы, если текущая база данных не указана tempdb
. Например:
SELECT OBJECT_ID('tempdb..#mytemptable');
Системные функции можно использовать в списке WHERE
выбора, в предложении и в любом месте, где разрешено выражение. Дополнительные сведения см. в статьях Выражения (Transact-SQL) и WHERE (Transact-SQL).
Примеры кода Transact-SQL в этой статье используют AdventureWorks2022
базу данных или AdventureWorksDW2022
пример базы данных, которую можно скачать с домашней страницы примеров и проектов сообщества Microsoft SQL Server.
Следующий пример возвращает идентификатор объекта для таблицы Production.WorkOrder
в базе данных AdventureWorks2022
.
USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks2022.Production.WorkOrder') AS 'Object ID';
GO
Следующий пример проверяет существование указанной таблицы, проверяя наличие у таблицы идентификатора объекта. Если таблица существует, то она удаляется. Если таблица не существует, DROP TABLE
инструкция не выполняется.
USE AdventureWorks2022;
GO
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
DROP TABLE dbo.AWBuildVersion;
GO
В приведенном ниже примере возвращаются сведения для всех индексов и секций таблицы Person.Address
в базе данных AdventureWorks2022
с помощью функции sys.dm_db_index_operational_stats.
Примечание
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
При использовании функций DB_ID
Transact-SQL и OBJECT_ID
возврата значения параметра всегда убедитесь, что возвращается допустимый идентификатор. Если не удается найти имя базы данных или объекта, например, если они не существуют или неправильно написаны, обе функции возвращаются NULL
. Функция sys.dm_db_index_operational_stats
интерпретирует как подстановочное NULL
значение, указывающее все базы данных или все объекты. Так как эта операция может быть непреднамеренной, в этом разделе демонстрируется безопасный способ определения идентификаторов баз данных и объектов.
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
В следующем примере возвращается идентификатор объекта для FactFinance
таблицы в базе данных AdventureWorksPDW2022.
SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!