sys.sql_modules (Transact-SQL)
S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse dans Microsoft Fabric
Retourne une ligne pour chaque objet qui est un module défini en langage SQL dans SQL Server, y compris la fonction scalaire définie par l’utilisateur compilée en mode natif. Les objets de type P, RF, V, TR, FN, IF, TF et R possèdent un module SQL associé. Les valeurs par défaut autonomes, les objets de type D, possèdent également une définition de module SQL dans cette vue. Pour obtenir une description de ces types, consultez la colonne type
dans l’affichage catalogue sys.objects.
Pour plus d’informations, consultez Fonctions scalaires définies par l’utilisateur pour l’OLTP en mémoire.
Nom de la colonne | Type de données | Description |
---|---|---|
object_id | int | ID d'objet de l'objet conteneur. Unique dans une base de données. |
définition | nvarchar(max) | Texte SQL qui définit ce module. Cette valeur peut également être obtenue à l’aide de la fonction intégrée OBJECT_DEFINITION. NULL = chiffré |
uses_ansi_nulls | bit | Le module a été créé avec SET ANSI_NULLS ON. Sera toujours = 0 pour les règles et les valeurs par défaut. |
uses_quoted_identifier | bit | Le module a été créé avec SET QUOTED_IDENTIFIER ON. |
is_schema_bound | bit | Module créé avec l'option SCHEMABINDING. Contient toujours la valeur 1 pour les procédures stockées compilées en mode natif. |
uses_database_collation | bit | 1 = La définition d'un module lié au schéma dépend du classement par défaut de la base de données pour une évaluation correcte ; dans tous les autres cas, 0. Une telle dépendance évite la modification du classement par défaut de la base de données. |
is_recompiled | bit | Procédure créée avec l'option WITH RECOMPILE. |
null_on_null_input | bit | Le module a été déclaré pour produire une sortie NULL sur n’importe quelle entrée NULL . |
execute_as_principal_id | Int | ID du principal de base de données EXECUTE AS.NULL par défaut ou dans le cas de l’instruction EXECUTE AS CALLER.ID du principal spécifié si EXECUTE AS SELF ou EXECUTE AS <principal>. -2 = EXECUTE AS OWNER. |
uses_native_compilation | bit | S’applique à : SQL Server 2014 (12.x) à SQL Server 2014 (12.x). 0 = Non compilé en mode natif 1 = Compilé en mode natif La valeur par défaut est 0. |
is_inlineable | bit | S’applique à : SQL Server 2019 (15.x) et versions ultérieures. Indique si le module est inlineable ou non. L’inlineabilité est basée sur les conditions spécifiées ici. 0 = n’est pas inlineable 1 = est inlineable. Pour les fonctions scalaires définies par l’utilisateur (UDF), la valeur est 1 si la fonction UDF est inlineable, et 0 dans le cas contraire. Elle contient toujours la valeur 1 pour les fonctions table inline (TVF) et 0 pour tous les autres types de modules. |
inline_type | bit | S’applique à : SQL Server 2019 (15.x) et versions ultérieures. Indique si l’inlining est activé pour le module actuellement. 0 = l’inlining est désactivé 1 = l’inlining est activé. Pour les fonctions scalaires définies par l’utilisateur (UDF), la valeur est 1 si l’inlining est activé (explicitement ou implicitement). La valeur sera toujours 1 pour les fonctions table inline (TVF) et 0 pour les autres types de module. |
Notes
L’expression SQL pour une contrainte DEFAULT, objet de type D, se trouve dans l’affichage catalogue sys.default_constraints. L’expression SQL pour une contrainte CHECK, objet de type C, se trouve dans l’affichage catalogue sys.check_constraints.
Ces informations sont également décrites dans sys.dm_db_uncontained_entities (Transact-SQL).
Renommer une procédure stockée, une fonction, une vue ou un déclencheur ne modifiera pas le nom de l’objet correspondant dans la colonne de définition de la vue de catalogue sys.sql_modules
ou la définition renvoyée par la fonction intégrée OBJECT_DEFINITION. Par conséquent, il est déconseillé d’utiliser sp_rename
pour renommer ces types d’objet. Supprimez, puis recréez plutôt l'objet avec son nouveau nom. Pour en savoir plus, consultez sp_rename (Transact-SQL).
autorisations
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
L’exemple suivant retourne l’object_id, le nom de schéma, le nom d’objet, le type d’objet et la définition de chaque module dans la base de données actuelle.
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];
Voir aussi
Affichages catalogue (Transact-SQL)
Vues de catalogue d'objets (Transact-SQL)
Questions fréquentes sur l'interrogation des catalogues système de SQL Server
In-Memory OLTP (optimisation en mémoire)