sys.sql_modules (Transact-SQL)

Gilt für: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform System (PDW)

Gibt eine Zeile für jedes Objekt zurück, bei dem es sich um ein sql-sprachdefiniertes 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. Eine solche Abhängigkeit 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 deklariert, um eine Ausgabe für NULL jede NULL Eingabe zu erzeugen.
execute_as_principal_id Int Die ID des Datenbankprinzipals EXECUTE AS.

NULL standardmäßig oder , wenn EXECUTE AS CALLER.

ID des angegebenen Prinzipals, wenn 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 (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 das Modul inlineierbar ist oder nicht. Die Inlineierbarkeit basiert auf den hier angegebenen Bedingungen.

0 = nicht inlineierbar

1 = ist inlineierbar.

Bei benutzerdefinierten Skalarfunktionen (UdFs) ist der Wert 1, wenn die UDF inlineierbar ist, andernfalls 0. Er enthält immer den Wert 1 für Inlinetabellenwertfunktionen (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.

Für skalare benutzerdefinierte Funktionen (UDFs) ist der Wert 1, wenn das Inlining aktiviert ist (explizit oder implizit). Der Wert ist für Inlinetabellenwertfunktionen (TVFs) immer 1 und für andere Modultypen 0.

Bemerkungen

Der SQL-Ausdruck für eine DEFAULT-Einschränkung( Objekt des Typs D) befindet sich in der sys.default_constraints Katalogsicht. Der SQL-Ausdruck für eine CHECK-Einschränkung( Objekt vom Typ C) befindet sich in der sys.check_constraints Katalogsicht.

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

Das Umbenennen einer gespeicherten Prozedur, Funktion, Sicht oder Trigger ändert den Namen des entsprechenden Objekts in der Definitionsspalte der sys.sql_modules Katalogsicht oder die Definition, die von der integrierten funktion OBJECT_DEFINITION zurückgegeben wird. Aus diesem Grund wird empfohlen, diese sp_rename Objekttypen nicht umzubenennen. 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 Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Im folgenden Beispiel werden die object_id, der Schemaname, der Objektname, der Objekttyp und die Definition jedes Moduls 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)