sys.sql_modules (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce una riga per ogni oggetto che è un modulo definito dal linguaggio SQL in SQL Server, inclusa la 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. Le impostazioni predefinite autonome, gli oggetti di tipo D, hanno anche una definizione di modulo SQL in questa vista. 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 la funzione predefinita OBJECT_DEFINITION . 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 l'entità> EXECUTE AS SELF o EXECUTE AS<. -2 = EXECUTE AS OWNER. |
uses_native_compilation | bit | Si applica a: SQL Server 2014 (12.x) a 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 è inline o meno. L'inlinebilità si basa sulle condizioni specificate qui. 0 = non inline 1 = è inline. Per le funzioni definite dall'utente scalari, il valore sarà 1 se la funzione definita dall'utente è inline e 0 in caso contrario. Contiene sempre un valore pari a 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 è attivato per il modulo attualmente. 0 = l'inlining è disattivato 1 = l'inlining è attivato. Per le funzioni scalari definite dall'utente (UDF), 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. |
Osservazioni:
L'espressione SQL per un vincolo DEFAULT, oggetto di tipo D, è disponibile nella vista del catalogo sys.default_constraints . L'espressione SQL per un vincolo CHECK, oggetto di tipo C, è disponibile nella vista del catalogo sys.check_constraints .
Queste informazioni sono descritte anche in sys.dm_db_uncontained_entities (Transact-SQL).
La ridenominazione di una stored procedure, di una funzione, di una vista o di un trigger non modifica il nome dell'oggetto corrispondente nella colonna di definizione della sys.sql_modules
vista del catalogo o la definizione restituita dalla funzione predefinita OBJECT_DEFINITION . Per questo motivo, è consigliabile sp_rename
non usare per rinominare questi tipi di oggetto. In alternativa, eliminare e ricreare l'oggetto con il nuovo nome. Altre informazioni sono disponibili in sp_rename (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.
Esempi
Nell'esempio seguente vengono restituiti i 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];
Vedi anche
Viste del catalogo (Transact-SQL)
Viste del catalogo oggetti (Transact-SQL)
Domande frequenti sull'esecuzione di query nel catalogo di sistema di SQL Server
OLTP in memoria (ottimizzazione in memoria)