sys.sql_modules (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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)