Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
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 didefinisikan. 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 sekurables 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. Anggota db_owner, db_ddladmin, dan db_securityadmin memiliki izin ini secara implisit dalam peran tetap database.
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 < 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 Nama, Jenis, dan Jenis 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
iuPersonpemicu.
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
iuPersonpemicu.
USE AdventureWorks2022;
GO
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_description,
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_modul (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)
OBJECT(Transact-SQL)
OBJECT_DEFINITION (T-SQL)