sys.sql_modules (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Restituisce una riga per ogni oggetto che è un modulo SQL definito dal linguaggio in , inclusa SQL Serverla funzione scalare definita dall'utente compilata in modo nativo. Agli oggetti di tipo P, RF, V, TR, FN, IF, TF e R è associato un modulo SQL. In questa vista anche agli oggetti predefiniti autonomi, ovvero gli oggetti di tipo D, sono associati a una definizione di modulo SQL. Per una descrizione di questi tipi, vedere la type colonna nella vista del catalogo sys.objects .

Per altre informazioni, vedere Funzioni scalari definite dall'utente per OLTP in memoria.

Nome colonna Tipo di dati Descrizione
object_id int ID dell'oggetto contenitore. Valore univoco all'interno di un database.
Definizione nvarchar(max) Testo SQL che definisce il modulo. Questo valore può essere ottenuto anche usando OBJECT_DEFINITION funzione incorporata.

NULL = Crittografato.
uses_ansi_nulls bit Modulo creato con SET ANSI_NULLS ON.

È sempre = 0 per regole e impostazioni predefinite.
uses_quoted_identifier bit Modulo creato con SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Modulo creato con l'opzione SCHEMABINDING.

Contiene sempre il valore 1 per le stored procedure compilate in modo nativo.
uses_database_collation bit 1 = La definizione del modulo associato a uno schema dipende dalle regole di confronto predefinite del database per una corretta valutazione; altrimenti, 0. Tale dipendenza impedisce la modifica delle regole di confronto predefinite del database.
is_recompiled bit Procedura creata con l'opzione WITH RECOMPILE.
null_on_null_input bit Il modulo è stato dichiarato per produrre un NULL output su qualsiasi NULL input.
execute_as_principal_id Int ID dell'entità database EXECUTE AS.

NULL per impostazione predefinita o se EXECUTE AS CALLER.

ID dell'entità specificata se EXECUTE AS SELF o EXECUTE AS <principal>.

-2 = EXECUTE AS OWNER.
uses_native_compilation bit Si applica a: SQL Server 2014 (12.x) tramite SQL Server 2014 (12.x).

0 = non compilata in modo nativo

1 = compilata in modo nativo

Il valore predefinito è 0.
is_inlineable bit Si applica a: SQL Server 2019 (15.x) e versioni successive.

Indica se il modulo è inlineable o meno. L'inlinebilità si basa sulle condizioni specificate qui.

0 = non inlineable

1 = è inlineable.

Per le funzioni scalari definite dall'utente (UDF), il valore sarà 1 se la funzione definita dall'utente è inline e 0 in caso contrario. Contiene sempre il valore 1 per le funzioni con valori di tabella inline e 0 per tutti gli altri tipi di modulo.
inline_type bit Si applica a: SQL Server 2019 (15.x) e versioni successive.

Indica se l'inlining è attualmente attivato per il modulo.

0 = l'inlining è disattivato

1 = l'inlining è attivato.

Per le funzioni definite dall'utente (UDF) scalari, il valore sarà 1 se l'inlining è attivato (in modo esplicito o implicito). Il valore sarà sempre 1 per le funzioni con valori di tabella inline e 0 per altri tipi di modulo.

Commenti

L SQL'espressione per un vincolo DEFAULT, oggetto di tipo D, si trova nella vista sys.default_constraints catalogo. La SQL per un vincolo CHECK, oggetto di tipo C, si trova nella vista sys.check_constraints catalogo.

Queste informazioni sono descritte anche in sys.dm_db_uncontained_entities (Transact-SQL).

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempio

Nell'esempio seguente vengono restituiti object_id, il nome dello schema, il nome dell'oggetto, il tipo di oggetto e la definizione di ogni modulo nel database corrente.

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

Vedere anche

Viste del catalogo (Transact-SQL)
Viste del catalogo dell'oggetto (Transact-SQL)
Domande frequenti sull'esecuzione SQL Server catalogo di sistema
OLTP in memoria (ottimizzazione per la memoria)