Udostępnij za pomocą


sys.sql_moduły (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wiersz dla każdego obiektu zdefiniowanego w języku SQL w programie SQL Server, w tym natywnie skompilowanej funkcji zdefiniowanej przez użytkownika skalarnej. Obiekty typu P, , RFVTRFNIFTFi R mają skojarzony moduł SQL. Autonomiczne wartości domyślne, obiekty typu D, mają również definicję modułu SQL w tym widoku. Opis tych typów można znaleźć type w kolumnie w widoku katalogu sys.objects .

Aby uzyskać więcej informacji, zobacz Scalar User-Defined Functions for In-Memory OLTP.

Nazwa kolumny Typ danych Description
object_id int Identyfikator obiektu zawierającego obiekt. Jest unikatowy w bazie danych.
definition nvarchar(max) Tekst SQL definiujący ten moduł. Tę wartość można również uzyskać przy użyciu wbudowanej funkcji OBJECT_DEFINITION .

NULL = Zaszyfrowane.
uses_ansi_nulls bit Moduł został utworzony za pomocą polecenia SET ANSI_NULLS ON.

Zawsze 0 w przypadku reguł i wartości domyślnych.
uses_quoted_identifier bit Moduł został utworzony za pomocą polecenia SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Moduł został utworzony z opcją SCHEMABINDING .

Zawsze zawiera wartość 1 dla natywnie skompilowanych procedur składowanych.
uses_database_collation bit 1 = Definicja modułu powiązanego ze schematem zależy od domyślnego sortowania bazy danych w celu poprawnej oceny; w przeciwnym razie, 0. Taka zależność uniemożliwia zmianę domyślnego sortowania bazy danych.
is_recompiled bit Metoda została utworzona WITH RECOMPILE .
null_on_null_input bit Moduł został zadeklarowany w celu utworzenia NULL danych wyjściowych na dowolnych danych wejściowych NULL .
execute_as_principal_id Int Identyfikator podmiotu EXECUTE AS zabezpieczeń bazy danych.

NULL domyślnie lub jeśli EXECUTE AS CALLER.
Identyfikator określonego podmiotu zabezpieczeń, jeśli EXECUTE AS SELF lub EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = nie skompilowany natywnie
1 = jest natywnie skompilowany

Wartość domyślna to 0.

Dotyczy: SQL Server 2014 (12.x) i nowsze wersje.
is_inlineable bit Wskazuje, czy moduł może być wbudowany, czy nie. Brak możliwości jest oparty na warunkach określonych w wymaganiach.

0 = nie można podkreślić
1 = może być podkreśnięty.

W przypadku funkcji zdefiniowanych przez użytkownika (UDF, scalar user-defined functions) wartość jest 1 określana, jeśli funkcja UDF może być wciśnięta i 0 w inny sposób. Zawsze zawiera wartość dla wbudowanych 1 funkcji tabel (TVFs) i 0 dla wszystkich innych typów modułów.

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje.
inline_type bit Wskazuje, czy dołączanie jest obecnie włączone dla modułu.
0 = podkreślenie jest wyłączone
1 = dołączanie jest włączone.
W przypadku funkcji zdefiniowanych przez użytkownika (UDF) wartość jest 1 włączona (jawnie lub niejawnie). Wartość jest zawsze 1 dostępna dla wbudowanych funkcji wartości tabeli (TVFs) i 0 innych typów modułów.

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje.

Remarks

Wyrażenie SQL dla DEFAULT ograniczenia, obiektu typu D, znajduje się w widoku wykazu sys.default_constraints . Wyrażenie SQL dla CHECK ograniczenia, obiektu typu C, znajduje się w widoku wykazu sys.check_constraints .

Te informacje są również opisane w sys.dm_db_uncontained_entities.

Zmiana nazwy procedury składowanej, funkcji, widoku lub wyzwalacza nie powoduje zmiany nazwy odpowiedniego obiektu w kolumnie sys.sql_modules definicji widoku wykazu lub definicji zwróconej przez funkcję wbudowaną OBJECT_DEFINITION . Z tego powodu zalecamy, aby nie używać sp_rename nazwy tych typów obiektów. Zamiast tego upuść i ponownie utwórz obiekt pod nową nazwą. Dowiedz się więcej w sp_rename.

Permissions

Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Examples

Poniższy przykład zwraca object_id, nazwę schematu, nazwę obiektu, typ obiektu i definicję każdego modułu w bieżącej bazie danych.

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