sys.sql_modules (Transact-SQL)
Gilt für: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform 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)