Поделиться через


OBJECT_DEFINITION (Transact-SQL)

Возвращает исходный текст Transact-SQL определения указанного объекта.

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

Синтаксис

OBJECT_DEFINITION ( object_id )

Аргументы

  • object_id
    Идентификатор объекта, который будет использоваться. Аргумент object_id имеет тип int. Предполагается, что он представляет объект в текущем контексте базы данных.

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

nvarchar(max)

Исключения

Возвращает значение NULL в случае ошибки или если участник не имеет разрешений для просмотра объекта.

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как OBJECT_DEFINITION, могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделах Настройка видимости метаданных и Устранение неполадок, связанных с видимостью метаданных.

Замечания

Компонент SQL Server Database Engine предполагает, что идентификатор object_id содержится в текущем контексте базы данных. Параметры сортировки определения объекта всегда совпадают с параметрами сортировки контекста вызывающей базы данных.

OBJECT_DEFINITION применяется к объектам следующих типов:

  • C = проверочное ограничение;

  • D = значение по умолчанию (ограничение или изолированное);

  • P = хранимая процедура SQL;

  • FN = скалярная функция SQL;

  • R = правило;

  • RF = процедура фильтра репликации;

  • TR = триггер SQL (триггер DML, существующий в пределах схемы, или триггер DDL в области базы данных или сервера);

  • IF = встроенная возвращающая табличное значение функция SQL;

  • TF = возвращающая табличное значение функция SQL;

  • V = представление.

Разрешения

Определения системных объектов видимы для всех. Определения пользовательских объектов видимы владельцу объекта или участникам, которым предоставлены следующие разрешения: ALTER, CONTROL, TAKE OWNERSHIP или VIEW DEFINITION. Эти разрешения неявно предоставляются членам предопределенных ролей базы данных db_owner, db_ddladmin и db_securityadmin.

Примеры

А. Возвращение исходного текста пользовательского объекта

В следующем примере возвращается определение пользовательского триггера uAddress в схеме Person. Встроенная функция OBJECT_ID используется, чтобы передать идентификатор объекта триггера в инструкцию OBJECT_DEFINITION.

USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition]; 
GO

Б. Возвращение исходного текста системного объекта

В следующем примере возвращается определение системной хранимой процедуры sys.sp_columns.

USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO