Itu tergantung pada tingkat rekursi untuk pemicu yang saat ini disetel pada DB.
Jika Anda melakukan ini:
SP_CONFIGURE 'nested_triggers',0
GO
RECONFIGURE
GO
Atau ini:
ALTER DATABASE db_name
SET RECURSIVE_TRIGGERS OFF
Pemicu di atas tidak akan dipanggil lagi, dan Anda akan aman (kecuali jika Anda mengalami semacam kebuntuan; itu bisa saja terjadi tapi mungkin saya salah).
Namun, saya tidak pikir ini ide yang bagus. Opsi yang lebih baik adalah menggunakan BUKAN pemicu . Dengan begitu Anda akan menghindari menjalankan pembaruan (manual) pertama melalui DB. Hanya yang ditentukan di dalam pemicu yang akan dieksekusi.
Pemicu INSTEAD OF INSERT akan seperti ini:
CREATE TRIGGER setDescToUpper ON part_numbers
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO part_numbers (
colA,
colB,
part_description
) SELECT
colA,
colB,
UPPER(part_description)
) FROM
INSERTED
END
GO
Ini akan secara otomatis "mengganti" pernyataan INSERT asli dengan pernyataan ini, dengan panggilan UPPER eksplisit diterapkan ke part_description
lapangan.
Pemicu BUKAN UPDATE akan serupa (dan saya tidak menyarankan Anda untuk membuat satu pemicu, pisahkan).
Juga, ini membahas komentar @Martin:ini berfungsi untuk penyisipan/pembaruan multibaris (contoh Anda tidak).