sys.sql_modules (Transact-SQL)

Berlaku untuk:ya SQL Server (semua versi yang didukung) Ya Azure SQL Database Ya Azure SQL Managed Instance ya Azure Synapse Analytics yaAnalytics Platform System (PDW)

Mengembalikan baris untuk setiap objek yang merupakan modul yang ditentukan bahasa SQL dalam SQL Server, termasuk fungsi skalar skalar asli yang ditentukan pengguna. 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 Scalar User-Defined Functions untuk OLTP In-Memory.

Nama kolom Jenis data Deskripsi
object_id Int ID objek dari objek yang berisi. Unik dalam database.
Definisi nvarchar(maks) Teks SQL yang mendefinisikan 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) hingga 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 skalar yang ditentukan pengguna (UDF), nilainya akan menjadi 1 jika UDF tidak 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 skalar yang ditentukan pengguna (UDF), nilainya akan menjadi 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 jenis 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 terkait 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, hilangkan dan buat ulang objek dengan nama barunya. Pelajari lebih lanjut di sp_rename (Transact-SQL).

Izin

Visibilitas metadata dalam tampilan katalog terbatas pada securable yang dimiliki pengguna atau di mana pengguna telah diberi 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 FAQ Katalog Sistem SQL Server
OLTP Dalam Memori (Pengoptimalan Dalam Memori)