sys.sql_modules (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento 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 del tipo P, RF, V, TR, FN, IF, TF y 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 datos | Descripción |
---|---|---|
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 | Módulo creado con SET ANSI_NULLS ON. Siempre será = 0 para reglas y valores predeterminados. |
uses_quoted_identifier | bit | Módulo creado con SET QUOTED_IDENTIFIER ON. |
is_schema_bound | bit | El módulo se ha creado con la opción SCHEMABINDING. Siempre contiene el valor 1 para los procedimientos almacenados generados de forma nativa. |
uses_database_collation | bit | 1 = La definición del módulo enlazado a un esquema depende de la intercalación predeterminada de la base de datos para la evaluación correcta; en caso contrario, 0. Esta dependencia evita que se cambie la intercalación predeterminada de la base de datos. |
is_recompiled | bit | El procedimiento se ha creado con la opción WITH RECOMPILE. |
null_on_null_input | bit | Módulo declarado para generar una salida NULL en cualquier entrada NULL . |
execute_as_principal_id | Int | Id. de la entidad de seguridad de base de datos EXECUTE AS.NULL de manera predeterminada o si EXECUTE AS CALLER.Identificador de la entidad de seguridad especificada si EXECUTE AS SELF o EXECUTE AS <entidad de seguridad>. -2 = EXECUTE AS OWNER. |
uses_native_compilation | bit | Se aplica a: desde SQL Server 2014 (12.x) hasta SQL Server 2014 R2 (12.x). 0 = no está compilado de forma nativa 1 = está compilado de forma nativa El valor predeterminado es 0. |
is_inlineable | bit | Válido para : SQL Server 2019 (15.x) y versiones posteriores. Indica si el módulo se puede insertar, o no. La capacidad para su inserción se basa en las condiciones que se especifican aquí. 0 = no se puede insertar 1 = se puede insertar En el caso de las funciones escalares definidas por el usuario (UDF), el valor será 1 si la UDF se puede insertar y 0 en caso 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. |
inline_type | bit | Válido para : SQL Server 2019 (15.x) y versiones posteriores. Indica si la inserción está activada actualmente para el módulo. 0 = la inserción está desactivada 1 = la inserción está activada En el caso de las funciones escalares definidas por el usuario (UDF), el valor será 1 si la inserción está activada (explícita o implícitamente). El valor siempre será 1 en el caso de las funciones insertadas con valores de tabla (TVF) y 0 para otros tipos de módulo. |
Observaciones
La expresión SQL de una restricción DEFAULT, objeto de tipo D, se encuentra en la vista de catálogo sys.default_constraints. La expresión SQL de una restricción CHECK, objeto de tipo C, se encuentra en la vista de catálogo sys.check_constraints.
Esta información también se describe en sys.dm_db_uncontained_entities (Transact-SQL).
Cambiar el nombre de un procedimiento almacenado, una función, una vista o un desencadenador no hará que cambie el nombre del objeto correspondiente en la columna de definición de la vista de catálogo sys.sql_modules
ni la definición que devuelve la función integrada OBJECT_DEFINITION. Este es el motivo por el que se recomienda no utilizar sp_rename
para cambiar el nombre a estos tipos de objetos. En su lugar, quite el objeto y vuelva a crearlo con su nuevo nombre. Obtenga más información en sp_rename (Transact-SQL).
Permisos
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.
Ejemplos
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
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];
Consulte también
Vistas de catálogo (Transact-SQL)
Vistas de catálogo de objetos (Transact-SQL)
Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server
In-Memory OLTP (optimización In-Memory)