Freigeben über


sys.sql_module (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Gibt eine Zeile für jedes Objekt zurück, das ein sql-sprachdefiniertes Modul in SQL Server ist, einschließlich der nativ kompilierten skalaren benutzerdefinierten Funktion. Objekte vom Typ P, , RF, VTR, FN, IF, und TFR weisen ein zugeordnetes SQL-Modul auf. Eigenständige Standardeinstellungen, Objekte vom Typ D, haben auch eine SQL-Moduldefinition in dieser Ansicht. 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 Description
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 Modul wurde mit SET ANSI_NULLS ON.

Immer 0 für Regeln und Standardwerte.
uses_quoted_identifier bit Modul wurde mit SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Modul wurde mit SCHEMABINDING Option erstellt.

Enthält immer einen Wert 1 für nativ kompilierte gespeicherte Prozeduren.
uses_database_collation bit 1= Schemagebundene Moduldefinition hängt von der Standardsortierung der Datenbank für die korrekte Auswertung ab; andernfalls . 0 Durch diese Abhängigkeit wird verhindert, dass die Standardsortierung der Datenbank geändert wird.
is_recompiled bit Die Prozedur wurde erstellt WITH RECOMPILE .
null_on_null_input bit Das Modul wurde so deklariert, dass auf eine NULL-Eingabe eine NULL-Ausgabe folgt.
execute_as_principal_id Int ID des EXECUTE AS Datenbankprinzipals.

NULL standardmäßig oder wenn EXECUTE AS CALLER.
ID des angegebenen Prinzipals, wenn EXECUTE AS SELF oder EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = nicht nativ kompiliert
1 = wird nativ kompiliert

Der Standardwert ist 0.

Gilt für: SQL Server 2014 (12.x) und höhere Versionen.
is_inlineable bit Gibt an, ob das Modul inlineiert werden kann. Die Inlineierbarkeit basiert auf den bedingungen, die in den Anforderungen angegeben sind.

0 = kann nicht inlineiert werden
1 = kann inlineiert werden.

Bei skalaren benutzerdefinierten Funktionen (UDFs) ist 1 der Wert, wenn die UDF inlined sein kann und 0 andernfalls. Er enthält immer einen Wert für 1 inlinetabellenwertige Funktionen (TVFs) und 0 für alle anderen Modultypen.

Gilt für: SQL Server 2019 (15.x) und höhere Versionen.
inline_type bit Gibt an, ob das Inlining für das Modul derzeit aktiviert ist.
0 = Inlining ist deaktiviert
1 = Inlining ist aktiviert.
Bei skalaren benutzerdefinierten Funktionen (UDFs) ist 1 der Wert, wenn das Inlining aktiviert ist (explizit oder implizit). Der Wert gilt immer 1 für inlinetabellenwertige Funktionen (TVFs) und 0 für andere Modultypen.

Gilt für: SQL Server 2019 (15.x) und höhere Versionen.

Remarks

Der SQL-Ausdruck für eine DEFAULT Einschränkung, ein Objekt vom Typ D, befindet sich in der sys.default_constraints Katalogansicht. Der SQL-Ausdruck für eine CHECK Einschränkung, ein Objekt vom Typ C, befindet sich in der sys.check_constraints Katalogansicht.

Diese Informationen werden auch in sys.dm_db_uncontained_entities beschrieben.

Durch das Umbenennen einer gespeicherten Prozedur, Funktion, Ansicht oder Trigger wird der Name des entsprechenden Objekts in der Definitionsspalte der sys.sql_modules Katalogansicht oder der definition, die von der integrierten OBJECT_DEFINITION Funktion zurückgegeben wird, nicht geändert. Aus diesem Grund wird empfohlen, diese Objekttypen nicht sp_rename umzubenennen. Legen Sie stattdessen das Objekt ab, und erstellen Sie es mit dem neuen Namen neu. Weitere Informationen finden Sie in sp_rename.

Permissions

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.

Examples

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