sys.sql_modules (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse 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, V, TR, 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 Deskripsi
object_id int ID objek objek yang berisi. Unik dalam database.
Definisi nvarchar(maks) 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.

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

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 Prosedur dibuat dengan opsi RECOMPILE.
null_on_null_input bit Modul dinyatakan menghasilkan NULL output pada input apa pun NULL .
execute_as_principal_id Int ID prinsipal database EXECUTE AS.

NULL secara default atau jika EXECUTE AS CALLER.

ID prinsipal yang ditentukan jika EXECUTE AS SELF atau EXECUTE AS <principal>.

-2 = JALANKAN SEBAGAI PEMILIK.
uses_native_compilation bit Berlaku untuk: SQL Server 2014 (12.x) melalui SQL Server 2014 (12.x).

0 = tidak dikompilasi secara asli

1 = dikompilasi secara asli

Nilai default adalah 0.
is_inlineable bit Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.

Menunjukkan apakah modul tidak sebaris atau tidak. Ketidakbarisan didasarkan pada kondisi yang ditentukan di sini.

0 = tidak sebaris

1 = tidak sebaris.

Untuk fungsi yang ditentukan pengguna skalar (UDF), nilainya adalah 1 jika UDF sebaris, dan 0 sebaliknya. Ini selalu berisi nilai 1 untuk fungsi bernilai tabel sebaris (TVF), dan 0 untuk semua jenis modul lainnya.
inline_type bit Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.

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 akan selalu 1 untuk fungsi bernilai tabel sebaris (TVF), dan 0 untuk jenis modul lainnya.

Keterangan

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

Informasi ini juga dijelaskan dalam sys.dm_db_uncontained_entities (Transact-SQL).

Mengganti nama prosedur tersimpan, fungsi, tampilan, atau pemicu tidak akan 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 menyarankan agar sp_rename tidak digunakan untuk mengganti nama jenis objek ini. Sebagai gantinya, letakkan dan buat ulang objek dengan nama barunya. Pelajari selengkapnya di sp_rename (Transact-SQL).

Izin

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.

Contoh

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

Lihat Juga

Tampilan Katalog (Transact-SQL)
Tampilan Katalog Objek (Transact-SQL)
Mengkueri TANYA JAWAB Umum Katalog Sistem SQL Server
In-Memory OLTP (Pengoptimalan In-Memory)