Condividi tramite


sys.sql_modules (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse 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. Gli oggetti di tipo P, VTRFNRF, IF, , TFe R hanno un modulo SQL associato. 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.

Column name Data type Description
object_id int ID dell'oggetto contenitore. Valore univoco all'interno di un database.
definition 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 Il modulo è stato creato con SET ANSI_NULLS ON.

Sempre 0 per le regole e le impostazioni predefinite.
uses_quoted_identifier bit Il modulo è stato creato con SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Il modulo è stato creato con SCHEMABINDING l'opzione .

Contiene sempre un valore di 1 per le stored procedure compilate in modo nativo.
uses_database_collation bit 1 = La definizione del modulo associata a schema dipende dalle regole di confronto predefinite del database per la valutazione corretta; in caso contrario, 0. Tale dipendenza impedisce la modifica delle regole di confronto predefinite del database.
is_recompiled bit L'opzione Procedure è stata creata 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à EXECUTE AS di database.

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 0 = non compilato in modo nativo
1 = viene compilato in modo nativo

Il valore predefinito è 0.

Si applica a: SQL Server 2014 (12.x) e versioni successive.
is_inlineable bit Indica se il modulo può essere inlined o meno. L'inlinebilità si basa sulle condizioni specificate nei requisiti.

0 = non può essere inlined
1 = può essere inlined.

Per le funzioni definite dall'utente scalari, il valore è 1 se la funzione definita dall'utente può essere inlined e 0 in caso contrario. Contiene sempre un valore per le funzioni con valori di 1 tabella inline e 0 per tutti gli altri tipi di modulo.

Si applica a: SQL Server 2019 (15.x) e versioni successive.
inline_type bit Indica se l'inlining è attivato per il modulo attualmente.
0 = l'inlining è disattivato
1 = l'inlining è attivato.
Per le funzioni definite dall'utente scalari, il valore è 1 se l'inlining è attivato (in modo esplicito o implicito). Il valore è sempre 1 per le funzioni con valori di tabella inline e 0 per altri tipi di modulo.

Si applica a: SQL Server 2019 (15.x) e versioni successive.

Remarks

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

Queste informazioni sono descritte anche in sys.dm_db_uncontained_entities.

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 non usare sp_rename per rinominare questi tipi di oggetto. Eliminare e ricreare l'oggetto con il nuovo nome. Altre informazioni sono disponibili in sp_rename.

Permissions

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.

Examples

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