sys.sql_modules (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt eine Zeile für jedes Objekt zurück, bei dem es sich um ein in SQL-Sprache definiertes Modul in SQL Server handelt, einschließlich der systemintern kompilierten benutzerdefinierten Skalarfunktion. Objekten des Typs P, RF, V, TR, FN, IF, TF und R ist ein SQL-Modul zugeordnet. Eigenständige Standards, Objekte des Typs D, haben ebenfalls eine SQL-Moduldefinition in dieser Sicht. Eine Beschreibung dieser Typen finden Sie in der type-Spalte in der sys.objects-Katalogsicht.

Weitere Informationen dazu finden Sie unter Benutzerdefinierte Skalarfunktionen für In-Memory-OLTP.

Spaltenname Datentyp BESCHREIBUNG
object_id int Die Objekt-ID des enthaltenen Objekts. Ist innerhalb einer Datenbank eindeutig.
definition nvarchar(max) Der SQL-Text, der dieses Modul definiert. Dieser Wert kann auch mithilfe der integrierten Funktion OBJECT_DEFINITION abgerufen werden.

NULL = Verschlüsselt.
uses_ansi_nulls bit Das Modul wurde mit SET ANSI_NULLS ON erstellt.

Ist immer = 0 für Regeln und Standardwerte.
uses_quoted_identifier bit Das Modul wurde mit SET QUOTED_IDENTIFIER ON erstellt.
is_schema_bound bit Das Modul wurde mit der Option SCHEMABINDING erstellt.

Enthält immer den Wert 1 für systemintern kompilierte gespeicherte Prozeduren.
uses_database_collation bit 1 = Die richtige Auswertung der schemagebundenen Moduldefinition ist abhängig von der Standardsortierung der Datenbank; andernfalls ist der Wert 0. Durch diese Abhängigkeit wird verhindert, dass die Standardsortierung der Datenbank geändert wird.
is_recompiled bit Die Prozedur wurde mit der Option WITH RECOMPILE erstellt.
null_on_null_input bit Das Modul wurde so deklariert, dass auf eine NULL-Eingabe eine NULL-Ausgabe folgt.
execute_as_principal_id Int Die ID des Datenbankprinzipals EXECUTE AS.

NULL als Standardwert oder bei EXECUTE AS CALLER.

ID des angegebenen Prinzipals bei EXECUTE AS SELF oder EXECUTE AS <Prinzipal>.

-2 = EXECUTE AS OWNER.
uses_native_compilation bit Gilt für: SQL Server 2014 (12.x) bis SQL Server 2014 R2 (12.x).

0 = nicht systemintern kompiliert

1 = systemintern kompiliert

Der Standardwert ist 0.
is_inlineable bit Gilt für: SQL Server 2019 (15.x) und höher.

Gibt an, ob Inlining für das Modul möglich ist oder nicht. Die Möglichkeit zum Inlining beruht auf den hier angegebenen Bedingungen.

0 = Inlining nicht möglich

1 = Inlining möglich

Bei benutzerdefinierten Skalarfunktionen (UDFs) lautet der Wert 1, wenn Inlining für die UDF möglich ist. Andernfalls lautet er 0. Die Funktion enthält immer den Wert 1 für Inline-Tabellenwertfunktionen (TVFs) und 0 für alle anderen Modultypen.
inline_type bit Gilt für: SQL Server 2019 (15.x) und höher.

Gibt an, ob das Inlining für das Modul derzeit aktiviert ist.

0 = Inlining ist deaktiviert

1 = Inlining ist aktiviert.

Bei benutzerdefinierten Skalarfunktionen (UDFs) lautet der Wert 1, wenn das Inlining aktiviert ist (explizit oder implizit). Der Wert lautet für Inline-Tabellenwertfunktionen (TVFs) immer 1 und für andere Modultypen 0.

Bemerkungen

Der SQL-Ausdruck für eine DEFAULT-Einschränkung, Objekt vom Typ D, ist in der sys.default_constraints-Katalogsicht enthalten. Der SQL-Ausdruck für eine CHECK-Einschränkung, Objekt vom Typ C, ist in der sys.check_constraints-Katalogsicht enthalten.

Diese Informationen werden auch unter sys.dm_db_uncontained_entities (Transact-SQL) beschrieben.

Durch das Umbenennen einer gespeicherten Prozedur, Funktion, Sicht oder eines Triggers wird der Name des entsprechenden Objekts in der definition-Spalte der sys.sql_modules-Katalogsicht oder in der Definition, die über die integrierte Funktion OBJECT_DEFINITION zurückgegeben wird, nicht geändert. Daher sollte sp_rename nicht zum Umbenennen dieser Objekttypen verwendet werden. Löschen Sie stattdessen das Objekt, und erstellen Sie es neu mit dem neuen Namen. Weitere Informationen finden Sie unter sp_rename (Transact-SQL).

Berechtigungen

Die Sichtbarkeit der Metadaten in Katalogansichten ist auf sicherungsfähige Elemente beschränkt, die ein Benutzer besitzt oder für die der Benutzer eine Berechtigung erteilt hat. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Im folgenden Beispiel werden object_id, Schemaname, Objektname und die Definition der einzelnen Module in der aktuellen Datenbank zurückgegeben.

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

Weitere Informationen

Katalogsichten (Transact-SQL)
Katalogsichten für Objekte (Transact-SQL)
FAQ: Abfragen des SQL Server-Systemkatalogs
In-Memory OLTP (In-Memory Optimization)