sys.sql_modules (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Возвращает по строке для каждого объекта, который является определенным языком SQL в SQL Server , включая скалярно скомпилированную определяемую пользователем функцию. Объекты типа P, RF, V, TR, FN, IF, TF и R имеют сопоставленный с ними SQL модуль. Изолированные значения по умолчанию и объекты типа D в этом представлении также имеют определение SQL модуля. Описание этих типов см. в столбце тип в представлении каталога sys. Objects .

Дополнительные сведения см. в разделе Скалярные определяемые пользователем функции для выполняющейся в памяти OLTP.

Имя столбца Тип данных Описание
object_id int Идентификатор объекта, содержащего данный объект. Уникален в базе данных.
definition nvarchar(max) Текст на языке SQL, определяющий этот модуль. Это значение можно также получить с помощью встроенной функции OBJECT_DEFINITION .

NULL = зашифрован.
uses_ansi_nulls bit Модуль был создан с параметром SET ANSI_NULLS ON.

Всегда будет равен 0 (нулю) для правил и умолчаний.
uses_quoted_identifier bit Модуль был создан с параметром SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Модуль был создан с параметром SCHEMABINDING.

Всегда содержит значение 1 для скомпилированных собственными средствами хранимых процедур.
uses_database_collation bit 1 = определение модуля, ограниченное схемой, зависит от принятых по умолчанию параметров сортировки базы данных для правильной оценки; в противном случае — 0. Такая зависимость предотвращает изменение параметров сортировки по умолчанию для базы данных.
is_recompiled bit Процедура была создана с параметром WITH RECOMPILE.
null_on_null_input bit Модуль был объявлен, чтобы обеспечить выходные значения NULL для любых входных значений NULL.
execute_as_principal_id Int ID-идентификатор участника базы данных, указанного в инструкции EXECUTE AS.

По умолчанию и в случае EXECUTE AS CALLER имеет значение NULL.

ИДЕНТИФИКАТОР указанного участника, если он выполняется как SELF или EXECUTE AS <principal> .

-2 = EXECUTE AS OWNER.
uses_native_compilation bit Применимо к: с SQL Server 2014 (12.x) до SQL Server 2014 (12.x).

0 = не скомпилированы в собственном коде

1 = скомпилированы в собственном коде

Значение по умолчанию — 0.
is_inlineable bit Область применения: SQL Server 2019 (15.x) и более поздних версий.

Указывает, является ли модуль встроенным. Встраивание зависит от условий, указанных здесь.

0 = невстраиваемые

1 = является встроенным.

Для скалярных пользовательских функций значение будет равно 1, если определяемая пользователем функция является встроенной, и 0 в противном случае. Он всегда содержит значение 1 для встроенного возвращающие табличное, а 0 — для всех других типов модулей.
inline_type bit Область применения: SQL Server 2019 (15.x) и более поздних версий.

Указывает, включено ли встраивание для модуля в настоящее время.

0 = встраивание отключено

1 = Встраивание включено.

Для скалярных пользовательских функций значение будет равно 1, если встраивание включено (явно или неявно). Значение всегда будет равно 1 для встроенных возвращающие табличное и 0 для других типов модулей.

Remarks

Выражение SQL для ограничения по УМОЛЧАНИю, объект типа D, находится в представлении каталога sys.default_constraints . Выражение SQL для ПРОВЕРОЧного ограничения, объект типа C, находится в представлении каталога sys.CHECK_CONSTRAINTS .

Эти сведения также описаны в sys.dm_db_uncontained_entities (Transact-SQL).

Разрешения

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

В ходе выполнения представленного ниже примера выполняется отображение имен, типов и определений всех модулей в текущей базе данных.

SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition  
FROM sys.sql_modules AS sm  
JOIN sys.objects AS o ON sm.object_id = o.object_id  
ORDER BY o.type;  
GO  

См. также:

Представления каталога (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Запросы к системному каталогу SQL Server вопросы и ответы
Выполняющаяся в памяти OLTP (оптимизация в памяти)