Vấn đề đầu tiên của bạn là bạn không bao giờ nên coi việc lặp lại một bộ hồ sơ là lựa chọn đầu tiên. Nó hầu như luôn luôn là sự lựa chọn sai lầm như ở đây. Vấn đề tiếp theo của bạn là trình kích hoạt xử lý toàn bộ tập hợp các bản ghi không phải một bản ghi cùng một lúc và từ mô tả của bạn, tôi cá là bạn đã viết nó với giả định rằng nó sẽ xử lý một bản ghi tại một thời điểm. Bạn cần một quy trình dựa trên thiết lập.
Có thể bạn cần một cái gì đó như thế này trong trình kích hoạt của mình, nó sẽ chèn tất cả các quốc gia được chèn vào mà chưa có trong bảng quốc gia (điều này giả sử country_Id là một cột nhận dạng số nguyên):
Insert country (country_name)
select country_name
from inserted i
where not exists
(select * from country c
where c.country_name = i.country_name)
Bạn cũng có thể sử dụng một proc được lưu trữ thay vì một trình kích hoạt để chèn vào các bảng thực từ bảng dàn.