Bagikan melalui


sys.sql_modul (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Mengembalikan baris untuk setiap objek yang merupakan modul yang ditentukan bahasa SQL di SQL Server, termasuk fungsi yang ditentukan pengguna skalar yang dikompilasi secara asli. Objek jenis P, , RF, VTR, FN, IF, TF, dan R memiliki modul SQL terkait. Default yang berdiri sendiri, objek jenis D, juga memiliki definisi modul SQL dalam tampilan ini. Untuk deskripsi jenis ini, lihat type kolom dalam tampilan katalog sys.objects .

Untuk informasi selengkapnya, lihat Fungsi Yang Ditentukan Pengguna Skalar untuk OLTP Dalam Memori.

Nama kolom Jenis data Description
object_id int ID objek objek yang berisi. Unik dalam database.
definition nvarchar(max) Teks SQL yang menentukan modul ini. Nilai ini juga dapat diperoleh menggunakan fungsi bawaan OBJECT_DEFINITION .

NULL = Terenkripsi.
uses_ansi_nulls bit Modul dibuat dengan SET ANSI_NULLS ON.

Selalu 0 untuk aturan dan default.
uses_quoted_identifier bit Modul dibuat dengan SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Modul dibuat dengan SCHEMABINDING opsi.

Selalu berisi nilai 1 untuk prosedur tersimpan yang dikompilasi secara asli.
uses_database_collation bit 1 = Definisi modul terikat skema tergantung pada kolaborasi default database untuk evaluasi yang benar; jika tidak, 0. Dependensi seperti itu mencegah perubahan kolatasi default database.
is_recompiled bit Opsi prosedur dibuat WITH RECOMPILE .
null_on_null_input bit Modul dinyatakan menghasilkan NULL output pada input apa pun NULL .
execute_as_principal_id Int EXECUTE AS ID prinsipal database.

NULL secara default atau jika EXECUTE AS CALLER.
ID prinsipal yang ditentukan jika EXECUTE AS SELF atau EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = tidak dikompilasi secara asli
1 = dikompilasi secara asli

Nilai defaultnya adalah 0.

Berlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru.
is_inlineable bit Menunjukkan apakah modul dapat di-inlin atau tidak. Ketidakbarisan didasarkan pada kondisi yang ditentukan dalam persyaratan.

0 = tidak dapat di-inlin
1 = dapat di-inlin.

Untuk fungsi yang ditentukan pengguna skalar (UDF), nilainya adalah 1 jika UDF dapat di-inlin, dan 0 sebaliknya. Ini selalu berisi nilai 1 untuk fungsi bernilai tabel sebaris (TVF), dan 0 untuk semua jenis modul lainnya.

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru.
inline_type bit Menunjukkan apakah inlining diaktifkan untuk modul saat ini.
0 = inlining dinonaktifkan
1 = inlining diaktifkan.
Untuk fungsi yang ditentukan pengguna skalar (UDF), nilainya adalah 1 jika inlining diaktifkan (secara eksplisit atau implisit). Nilainya selalu 1 untuk fungsi bernilai tabel sebaris (TVF), dan 0 untuk jenis modul lainnya.

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru.

Remarks

Ekspresi SQL untuk DEFAULT batasan, objek jenis D, ditemukan dalam tampilan katalog sys.default_constraints . Ekspresi SQL untuk CHECK batasan, objek jenis C, ditemukan dalam tampilan katalog sys.check_constraints .

Informasi ini juga dijelaskan dalam sys.dm_db_uncontained_entities.

Mengganti nama prosedur tersimpan, fungsi, tampilan, atau pemicu tidak mengubah nama objek yang sesuai di kolom sys.sql_modules definisi tampilan katalog atau definisi yang dikembalikan oleh fungsi bawaan OBJECT_DEFINITION . Untuk alasan ini, kami sarankan Anda tidak menggunakan sp_rename untuk mengganti nama jenis objek ini. Sebagai gantinya, letakkan dan buat ulang objek dengan nama barunya. Pelajari selengkapnya di sp_rename.

Permissions

Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Examples

Contoh berikut mengembalikan object_id, nama skema, nama objek, jenis objek, dan definisi setiap modul dalam database saat ini.

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