Mendapatkan Informasi Tentang Pemicu DML
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Topik ini menjelaskan cara mendapatkan informasi tentang pemicu DML di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Informasi ini dapat mencakup jenis pemicu pada tabel, nama pemicu, pemiliknya, dan tanggal pembuatan atau modifikasinya. Jika pemicu tidak dienkripsi saat dibuat, Anda mendapatkan definisi pemicu. Anda dapat menggunakan definisi untuk membantu Anda memahami bagaimana pemicu memengaruhi tabel yang ditentukan. Selain itu, Anda dapat mengetahui objek yang digunakan pemicu tertentu. Dengan informasi ini, Anda dapat mengidentifikasi objek yang memengaruhi pemicu jika diubah atau dihapus dalam database.
Dalam Topik Ini
Sebelum Anda mulai:
Untuk mendapatkan informasi tentang pemicu DML, gunakan:
Sebelum Anda mulai
Keamanan
Izin
sys.sql.modules, sys.object, sys.triggers, sys.events, sys.trigger_events
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.
OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptext
Memerlukan keanggotaan dalam peran publik . Definisi objek pengguna terlihat oleh pemilik objek atau pemberi izin yang memiliki salah satu izin berikut: ALTER, CONTROL, TAKE OWNERSHIP, atau VIEW DEFINITION. Izin ini secara implisit dipegang oleh anggota peran database tetap db_owner, db_ddladmin, dan db_securityadmin .
sys.sql_expression_dependencies
Memerlukan izin VIEW DEFINITION pada database dan izin SELECT pada sys.sql_expression_dependencies untuk database. Secara default, izin SELECT hanya diberikan kepada anggota peran database tetap db_owner . Saat izin SELECT dan VIEW DEFINITION diberikan kepada pengguna lain, penerima hibah dapat melihat semua dependensi dalam database.
Menggunakan SQL Server Management Studio
Untuk melihat definisi pemicu DML
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas database yang Anda inginkan, perluas Tabel, lalu perluas tabel yang berisi pemicu yang ingin Anda lihat definisinya.
Perluas Pemicu, klik kanan pemicu yang Anda inginkan, lalu klik Ubah. Definisi pemicu DML muncul di jendela kueri.
Untuk melihat dependensi pemicu DML
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas database yang Anda inginkan, perluas Tabel, lalu perluas tabel yang berisi pemicu dan dependensinya yang ingin Anda lihat.
Perluas Pemicu, klik kanan pemicu yang Anda inginkan, lalu klik Tampilkan Dependensi.
Di jendela Dependensi Objek, untuk melihat objek yang bergantung pada pemicu DML, pilih Objek yang bergantung pada <nama> pemicu DML. Objek muncul di area Dependensi .
Untuk melihat objek yang bergantung pada DML, pilih Objek yang <bergantung pada nama> pemicu DML. Objek muncul di area Dependensi . Perluas setiap simpul untuk melihat semua objek.
Untuk mendapatkan informasi tentang objek yang muncul di area Dependensi , klik objek . Di bidang Objek yang dipilih, informasi disediakan dalam kotak Jenis, Jenis, dan Dependensi.
Untuk menutup jendela Dependensi Objek, klik OK.
Menggunakan T-SQL
Untuk melihat definisi pemicu DML
Sambungkan ke Mesin Database.
Dari bilah Standar, klik Kueri Baru.
Salin dan tempel salah satu contoh berikut ke dalam jendela kueri dan klik Jalankan. Setiap contoh menunjukkan bagaimana Anda dapat melihat definisi
iuPerson
pemicu.
USE AdventureWorks2022;
GO
SELECT definition
FROM sys.sql_modules
WHERE object_id = OBJECT_ID(N'Person.iuPerson');
GO
USE AdventureWorks2022;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.iuPerson')) AS ObjectDefinition;
GO
USE AdventureWorks2022;
GO
EXEC sp_helptext 'Person.iuPerson'
GO
Untuk melihat dependensi pemicu DML
Sambungkan ke Mesin Database.
Dari bilah Standar, klik Kueri Baru.
Salin dan tempel salah satu contoh berikut ke dalam jendela kueri dan klik Jalankan. Setiap contoh menunjukkan bagaimana Anda dapat melihat dependensi
iuPerson
pemicu.
USE AdventureWorks2022;
GO
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_desciption,
COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,
referencing_class_desc, referenced_class_desc,
referenced_server_name, referenced_database_name, referenced_schema_name,
referenced_entity_name,
COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
is_caller_dependent, is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
WHERE referencing_id = OBJECT_ID(N'Person.iuPerson');
GO
Untuk melihat informasi tentang pemicu DML dalam database
Sambungkan ke Mesin Database.
Dari bilah Standar, klik Kueri Baru.
Salin dan tempel salah satu contoh berikut ke dalam jendela kueri dan klik Jalankan. Setiap contoh memperlihatkan bagaimana Anda dapat melihat informasi tentang pemicu DML (
TR
) dalam database.
USE AdventureWorks2022;
GO
SELECT name, parent_id, create_date, modify_date, is_instead_of_trigger
FROM sys.triggers
WHERE type = 'TR';
GO
USE AdventureWorks2022;
GO
SELECT name, object_id, schema_id, parent_object_id, type_desc, create_date, modify_date, is_published
FROM sys.objects
WHERE type = 'TR';
GO
USE AdventureWorks2022;
GO
SELECT OBJECTPROPERTY(OBJECT_ID(N'Person.iuPerson'), 'ExecIsInsteadOfTrigger');
GO
Untuk melihat informasi tentang peristiwa yang mengaktifkan pemicu DML
Sambungkan ke Mesin Database.
Dari bilah Standar, klik Kueri Baru.
Salin dan tempel salah satu contoh berikut ke dalam jendela kueri dan klik Jalankan. Setiap contoh menunjukkan bagaimana Anda dapat melihat peristiwa yang mengaktifkan pemicu
iuPerson
.
USE AdventureWorks2022;
GO
SELECT object_id, type, type_desc, is_trigger_event, event_group_type, event_group_type_desc
FROM sys.events
WHERE object_id = OBJECT_ID('Person.iuPerson');
GO
USE AdventureWorks2022;
GO
SELECT object_id, type,is_first, is_last
FROM sys.trigger_events
WHERE object_id = OBJECT_ID('Person.iuPerson');
GO
Lihat Juga
BUAT PEMICU (Transact-SQL)
JATUHKAN PEMICU (Transact-SQL)
AKTIFKAN PEMICU (Transact-SQL)
NONAKTIFKAN PEMICU (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_rename (T-SQL)
UBAH PEMICU (Transact-SQL)
sp_help (T-SQL)
sp_helptrigger (T-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (T-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (T-SQL)
sys.server_triggers (T-SQL)
sys.server_trigger_events (T-SQL)
sys.server_sql_modules (T-SQL)
sys.server_assembly_modules (T-SQL)
OBJECTPROPERTY (Transact-SQL)
OBJECT_DEFINITION (T-SQL)