sys.sql_modules (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает строку для каждого объекта, который является определяемым языком SQL модулем в SQL Server, включая скомпилированную скалярную определяемую пользователем функцию. Объекты типа P, RF, V, TR, FN, IF, TF и R имеют сопоставленный с ними SQL модуль. Автономные значения по умолчанию, объекты типа D, также имеют определение модуля SQL в этом представлении. Описание этих типов см type
. в столбце в представлении каталога sys.objects .
Дополнительные сведения см. в разделе Скалярные определяемые пользователем функции для выполняющейся в памяти OLTP.
Имя столбца | Тип данных | Description |
---|---|---|
object_id | int | Идентификатор объекта, содержащего данный объект. Уникален в базе данных. |
определение | 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.NULL по умолчанию или значение EXECUTE AS CALLER.Идентификатор указанного субъекта, если EXECUTE AS 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, если UDF является встроенным и 0 в противном случае. Он всегда содержит значение 1 для встроенных табличных функций (TVFs) и 0 для всех других типов модулей. |
inline_type | bit | Область применения: SQL Server 2019 (15.x) и более поздних версий. Указывает, включена ли встраивание модуля в данный момент. 0 = встраивание отключено 1 = встраивание включено. Для скалярных пользовательских функций (ОПРЕДЕЛ) значение будет равно 1, если встраивание включено (явно или неявно). Значение всегда будет равно 1 для встроенных табличных функций (TVFs) и 0 для других типов модулей. |
Замечания
Выражение SQL для ограничения DEFAULT типа D находится в представлении каталога sys.default_constraints . Выражение SQL для ограничения CHECK типа C находится в представлении каталога sys.check_constraints .
Эти сведения также описаны в sys.dm_db_uncontained_entities (Transact-SQL).
Переименование хранимой процедуры, функции, представления или триггера не изменит имя соответствующего sys.sql_modules
объекта в столбце определения представления каталога или определения, возвращаемого встроенной функцией OBJECT_DEFINITION . По этой причине рекомендуется sp_rename
не использовать для переименования этих типов объектов. Лучше удалить и создать объект повторно с новым именем. Дополнительные сведения см. в sp_rename (Transact-SQL).
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
В следующем примере возвращается object_id, имя схемы, имя объекта, тип объекта и определение каждого модуля в текущей базе данных.
SELECT
sm.object_id
, ss.[name] as [schema]
, o.[name] 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
JOIN sys.schemas AS ss
ON o.schema_id = ss.schema_id
ORDER BY
o.[type]
, ss.[name]
, o.[name];
См. также
Представления каталога (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Часто задаваемые вопросы о запросах к системному каталогу SQL Server
In-Memory OLTP (оптимизация в памяти)