Compartir a través de


sys.sql_módulos (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Devuelve una fila para cada objeto que es un módulo definido por el lenguaje SQL en SQL Server, incluida la función escalar escalar compilada de forma nativa. Los objetos de tipo P, , RFV, TRFN, IF, , TFy R tienen un módulo SQL asociado. Los valores predeterminados independientes, los objetos de tipo D, también tienen una definición de módulo SQL en esta vista. Para obtener una descripción de estos tipos, consulte la columna type en la vista de catálogo sys.objects.

Para obtener más información, vea Funciones escalares definidas por el usuario para OLTP en memoria.

Nombre de la columna Tipo de dato Description
object_id int Id. de objeto del objeto contenedor. Es único en una base de datos.
definition nvarchar(max) Texto SQL que define este módulo. Este valor también se puede obtener mediante la función integrada OBJECT_DEFINITION.

NULL = Cifrado.
uses_ansi_nulls bit El módulo se creó con SET ANSI_NULLS ON.

Siempre 0 para reglas y valores predeterminados.
uses_quoted_identifier bit El módulo se creó con SET QUOTED_IDENTIFIER ON.
is_schema_bound bit El módulo se creó con SCHEMABINDING la opción .

Siempre contiene un valor de 1 para los procedimientos almacenados compilados de forma nativa.
uses_database_collation bit 1 = La definición del módulo enlazado al esquema depende de la intercalación predeterminada de la base de datos para la evaluación correcta; de lo contrario, 0. Esta dependencia evita que se cambie la intercalación predeterminada de la base de datos.
is_recompiled bit Se creó la WITH RECOMPILE opción Procedimiento.
null_on_null_input bit Módulo declarado para generar una salida NULL en cualquier entrada NULL.
execute_as_principal_id Int Identificador de la entidad de seguridad de la EXECUTE AS base de datos.

NULL de forma predeterminada o si EXECUTE AS CALLER.
Identificador de la entidad de seguridad especificada si EXECUTE AS SELF o EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = no compilado de forma nativa
1 = se compila de forma nativa

El valor predeterminado es 0.

Se aplica a: SQL Server 2014 (12.x) y versiones posteriores.
is_inlineable bit Indica si el módulo se puede insertar o no. La inlineabilidad se basa en las condiciones especificadas en los requisitos.

0 = no se puede insertar
1 = se puede insertar.

Para las funciones escalares definidas por el usuario (UDF), el valor es 1 si la UDF se puede insertar y 0 , de lo contrario, . Siempre contiene un valor de 1 para las funciones insertadas con valores de tabla (TVF) y 0 para todos los demás tipos de módulo.

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores.
inline_type bit Indica si la inserción está activada actualmente para el módulo.
0 = la inserción está desactivada
1 = la inserción está activada
Para las funciones escalares definidas por el usuario (UDF), el valor es 1 si la inserción está activada (explícita o implícitamente). El valor siempre 1 es para funciones insertadas con valores de tabla (TVF) y 0 para otros tipos de módulo.

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores.

Remarks

La expresión SQL para una DEFAULT restricción, un objeto de tipo D, se encuentra en la vista de catálogo de sys.default_constraints . La expresión SQL para una CHECK restricción, un objeto de tipo C, se encuentra en la vista de catálogo de sys.check_constraints .

Esta información también se describe en sys.dm_db_uncontained_entities.

Cambiar el nombre de un procedimiento almacenado, una función, una vista o un desencadenador no cambia el nombre del objeto correspondiente en la columna de definición de la sys.sql_modules vista de catálogo o la definición devuelta por el OBJECT_DEFINITION función integrada. Por este motivo, se recomienda no usar sp_rename para cambiar el nombre de estos tipos de objeto. En su lugar, quite y vuelva a crear el objeto con su nuevo nombre. Obtenga más información en sp_rename.

Permissions

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.

Examples

En el ejemplo siguiente se devuelve el identificador de objetos, el nombre del esquema, el nombre y tipo de objeto, y la definición de todos los módulos de la base de datos actual.

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
     INNER JOIN sys.objects AS o
         ON sm.object_id = o.object_id
     INNER JOIN sys.schemas AS ss
         ON o.schema_id = ss.schema_id
ORDER BY o.[type], ss.[name], o.[name];