OBJECT_DEFINITION (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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 AdventureWorks2012;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition]; 
GO

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

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

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

См. также

Справочник

Функции метаданных (Transact-SQL)

OBJECT_NAME (Transact-SQL)

OBJECT_ID (Transact-SQL)

sp_helptext (Transact-SQL)

sys.sql_modules (Transact-SQL)

sys.server_sql_modules (Transact-SQL)