A trigger is a stored procedure like T-SQL that executes in response to inserts, updates, or deletes. It is not related to keys or indexes.
Every table should have a primary key even if you have to add an identity column. If you have a set of columns that are unique, then they are a good candidate for a PK. Without a key or any index, performance will be very bad.
It sounds like you have a problem with the queries. I can't say what without seeing them or understanding the process. Perhaps your queries need to distinguish or include existing records from or to the new records being inserted.
Randy
Helpdesk: Perhaps Im not the only one that does not know what you are doing. 😉