Partager via


sys.sql_modules (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Retourne une ligne pour chaque objet qui est un module défini par le langage SQL dans SQL Server, y compris une fonction scalaire scalaire compilée en mode natif. Les objets de type P, , RFV, TRFNIFTF, et R ont un module SQL associé. Les valeurs par défaut autonomes, les objets de type D, ont é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 colonne Type de données Description
object_id int ID d'objet de l'objet conteneur. Unique dans une base de données.
definition 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.

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 Le module a été créé avec SCHEMABINDING l’option.

Contient toujours une valeur pour 1 les procédures stockées compilées en mode natif.
uses_database_collation bit 1 = La définition du module lié au schéma dépend du classement par défaut de la base de données pour une évaluation correcte ; sinon, 0. Une telle dépendance évite la modification du classement par défaut de la base de données.
is_recompiled bit Option de création WITH RECOMPILE de la procédure.
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 EXECUTE AS principal de base de données.

NULL par défaut ou si EXECUTE AS CALLER.
ID du principal spécifié si EXECUTE AS SELF ou EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = non compilé en mode natif
1 = est compilé en mode natif

La valeur par défaut est 0.

S’applique à : SQL Server 2014 (12.x) et ultérieur.
is_inlineable bit Indique si le module peut être inclus ou non. L’inlineabilité est basée sur les conditions spécifiées dans les exigences.

0 = impossible d’être inline
1 = peut être incorporé.

Pour les fonctions scalaires définies par l’utilisateur (UDF), la valeur est 1 si la fonction UDF peut être insérée et 0 sinon. Il contient toujours une valeur pour 1 les fonctions table inline (TVF) et 0 pour tous les autres types de modules.

S’applique à : SQL Server 2019 (15.x) et versions ultérieures.
inline_type bit 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ée (explicitement ou implicitement). La valeur est toujours 1 destinée aux fonctions table inline (TVFs) et 0 aux autres types de modules.

S’applique à : SQL Server 2019 (15.x) et versions ultérieures.

Remarks

L’expression SQL pour une DEFAULT contrainte, objet de type D, se trouve dans l’affichage catalogue sys.default_constraints . L’expression SQL pour une CHECK contrainte, 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.

Le changement de nom d’une procédure stockée, d’une fonction, d’une vue ou d’un déclencheur ne modifie pas le nom de l’objet correspondant dans la colonne de définition de l’affichage sys.sql_modules catalogue ou la définition retournée par la fonction intégrée OBJECT_DEFINITION . Pour cette raison, nous vous recommandons de ne pas utiliser sp_rename pour renommer ces types d’objets. Au lieu de cela, supprimez et recréez l’objet avec son nouveau nom. En savoir plus dans sp_rename.

Permissions

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.

Examples

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
     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];