Hey all,
I would like to shorten up the coding of the trigger below. The trigger is tracing the transaction done on table "smummd009" and insert it into table "smatth002".

Code:
create trigger InsUpDel_smummd009 on smummd009 for insert, update, delete
as
begin
if exists(select * from deleted)
	begin
	if exists(select * from inserted)
		begin
			if update(smnm)
			begin
				insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval, oval)
				select 'Update', user, 'smummd009', 'smnm', 'mocd,smcd,lodt', 
				rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), smnm, 
				(select smnm from deleted where deleted.mocd = inserted.mocd 
and deleted.smcd = inserted.smcd and deleted.lodt = inserted.lodt)
				from inserted
			end
			if update(lofl)
			begin
				insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval, oval)
				select 'Update', user, 'smummd009', 'lofl', 'mocd,smcd,lodt', 
				rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), lofl, 
				(select lofl from deleted where deleted.mocd = inserted.mocd 
and deleted.smcd = inserted.smcd and deleted.lodt = inserted.lodt)
				from inserted
			end
		end
	else
		
		begin		
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, oval)
			select 'Delete', user, 'smummd009', 'mocd', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), mocd 
			from deleted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, oval)
			select 'Delete', user, 'smummd009', 'smcd', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), smcd 
			from deleted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, oval)
			select 'Delete', user, 'smummd009', 'smnm', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), smnm 
			from deleted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, oval)
			select 'Delete', user, 'smummd009', 'lofl', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), lofl 
			from deleted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, oval)
			select 'Delete', user, 'smummd009', 'lodt', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), lodt 
			from deleted
		end
	end
else
	begin
		if update(mocd) or update(smcd) or update(lodt)
		begin
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval)
			select 'Insert', user, 'smummd009', 'mocd', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), mocd 
			from inserted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval)
			select 'Insert', user, 'smummd009', 'smcd', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), smcd 
			from inserted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval)
			select 'Insert', user, 'smummd009', 'smnm', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), smnm 
			from inserted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval)
			select 'Insert', user, 'smummd009', 'lofl', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), lofl 
			from inserted
			insert into smatth002(txty, usid, tbln, fldn, keyn, rcid, nval)
			select 'Insert', user, 'smummd009', 'lodt', 'mocd,smcd,lodt', 
			rtrim(mocd) + ',' + rtrim(smcd) + ',' + rtrim(lodt), lodt 
			from inserted
		end
	end
end
Can someone please help. Any ideas would be appreciated.

Thank You.


Regards,
PlaYb_G