sys.sql_modules (Transact-SQL)
Devuelve una fila para cada objeto que es un módulo definido con lenguaje SQL. Los objetos del tipo P, RF, V, TR, FN, IF, TF y R tienen un módulo SQL asociado. Los valores predeterminados independientes, objetos del tipo D, también incluyen 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.
Nombre de 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. NULL = Cifrado. |
uses_ansi_nulls |
bit |
El módulo se ha creado con SET ANSI_NULLS establecido en ON. Siempre será = 0 para reglas y valores predeterminados. |
uses_quoted_identifier |
bit |
El módulo se ha creado con SET QUOTED_IDENTIFIER establecido en ON. |
is_schema_bound |
bit |
El módulo se ha creado con la opción SCHEMABINDING. |
uses_database_collation |
bit |
1 = La definición de módulo enlazada a esquema depende de la intercalación predeterminada de la base de datos para su correcta evaluación; en caso contrario, es 0. Esta dependencia impide 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 |
El módulo se ha declarado para generar una salida NULL siempre que la entrada sea NULL. |
execute_as_principal_id |
Int |
Id. de la entidad de seguridad de base de datos EXECUTE AS. Es NULL de manera predeterminada o si EXECUTE AS se ha establecido en CALLER. Id. de la entidad de seguridad especificada si se ha establecido EXECUTE AS SELF o EXECUTE AS <entidad de seguridad>. -2 = EXECUTE AS OWNER. |
Notas
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.
Permisos
En SQL Server 2005 y versiones posteriores, la visibilidad de los metadatos en las vistas de catálogo se limita a los elementos que pueden protegerse y que son propiedad de un usuario o sobre los que el usuario tienen algún permiso. Para obtener más información, vea Configuración de visibilidad de los metadatos.
Ejemplos
En el siguiente ejemplo se devuelve el nombre, tipo y definición de cada módulo de la base de datos AdventureWorks.
USE AdventureWorks;
GO
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