Dela via


sys.sql_modules (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric

Returnerar en rad för varje objekt som är en SQL-språkdefinierad modul i SQL Server, inklusive inbyggt kompilerad skalär användardefinierad funktion. Objekt av typen P, RF, V, TR, FN, IF, TFoch R har en associerad SQL-modul. Fristående standardvärden, objekt av typen D, har också en SQL-moduldefinition i den här vyn. En beskrivning av dessa typer type finns i kolumnen i katalogvyn sys.objects .

Mer information finns i Skalär User-Defined Functions för In-Memory OLTP.

Column name Data type Description
object_id int ID för objektet för det innehållande objektet. Är unik i en databas.
definition nvarchar(max) SQL-text som definierar den här modulen. Det här värdet kan också hämtas med hjälp av den OBJECT_DEFINITION inbyggda funktionen.

NULL = Krypterad.
uses_ansi_nulls bit Modulen skapades med SET ANSI_NULLS ON.

Alltid 0 för regler och standardvärden.
uses_quoted_identifier bit Modulen skapades med SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Modulen skapades med SCHEMABINDING alternativet .

Innehåller alltid värdet 1 för för internt kompilerade lagrade procedurer.
uses_database_collation bit 1= Schemabunden moduldefinition beror på standardsortering av databasen för korrekt utvärdering. annars . 0 Ett sådant beroende förhindrar att databasens standardsortering ändras.
is_recompiled bit Procedur skapades WITH RECOMPILE .
null_on_null_input bit Modulen deklarerades för att generera utdata NULL på alla NULL indata.
execute_as_principal_id Int ID för databasens EXECUTE AS huvudnamn.

NULL som standard eller om EXECUTE AS CALLER.
ID för det angivna huvudkontot om EXECUTE AS SELF eller EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = inte inbyggt kompilerat
1 = är internt kompilerad

Standardvärdet är 0.

Gäller för: SQL Server 2014 (12.x) och senare versioner.
is_inlineable bit Anger om modulen kan infogas eller inte. Inlineability baseras på de villkor som anges i kraven.

0 = kan inte infogas
1 = kan infogas.

För skalära användardefinierade funktioner (UDF) är 1 värdet om UDF kan infogas och 0 på annat sätt. Den innehåller alltid värdet 1 för för infogade tabellvärdesfunktioner (TVF:er) och 0 för alla andra modultyper.

gäller för: SQL Server 2019 (15.x) och senare versioner.
inline_type bit Anger om inlinning är aktiverat för modulen för närvarande.
0 = inlining är inaktiverat
1 = inlining är aktiverat.
För skalära användardefinierade funktioner (UDF: er) är 1 värdet om inlining är aktiverat (explicit eller implicit). Värdet är alltid 1 för infogade tabellvärdesfunktioner (TVF:er) och 0 för andra modultyper.

gäller för: SQL Server 2019 (15.x) och senare versioner.

Remarks

SQL-uttrycket för en DEFAULT begränsning, ett objekt av typen D, finns i sys.default_constraints katalogvyn. SQL-uttrycket för en CHECK begränsning, ett objekt av typen C, finns i sys.check_constraints katalogvyn.

Den här informationen beskrivs också i sys.dm_db_uncontained_entities.

Om du byter namn på en lagrad procedur, funktion, vy eller utlösare ändras inte namnet på motsvarande objekt i definitionskolumnen sys.sql_modules i katalogvyn eller definitionen som returneras av den OBJECT_DEFINITION inbyggda funktionen. Därför rekommenderar vi att du inte använder sp_rename för att byta namn på dessa objekttyper. Släpp i stället och återskapa objektet med det nya namnet. Läs mer i sp_rename.

Permissions

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Examples

I följande exempel returneras object_id, schemanamn, objektnamn, objekttyp och definition av varje modul i den aktuella databasen.

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