Я бы изменил верхнюю часть триггера так, чтобы триггер выглядел так:
CREATE TRIGGER trgInsertPenjDetail ON [dbo].[TbDtlOutBrgGd1]
AFTER INSERT
AS
BEGIN
BEGIN
UPDATE b
SET b.rek = b.rek + '( ' + convert(varchar(5),i.qty) + ' ' +
CASE i.jenis
WHEN 'PAKET' THEN nama1
WHEN 'TERAPI' then name2
WHEN 'BARANG' THEN nama3
ELSE '-'
END + ' ' + i.ket+ ' )'
FROM dbo.TbRek AS b
INNER JOIN (Select qty, jenis, ket, t1.nm as nama1, t2.nm as nama2, t3.nama as nama3 from Inserted as i
LEFT JOIN TbHdPaket as t1 on i.brg = t1.id
LEFT JOIN TbMterapi as t2 on i.brg = t2.id
LEFT JOIN TbMstBb as t3 on i.brg = t3.id) AS i ON b.nott = i.nott
END
BEGIN
UPDATE b
SET b.rek = replace(b.rek, ')(', '+')
FROM dbo.TbRek AS b
INNER JOIN Inserted AS i ON b.nott = i.nott
END
END
Таким образом, даже при множественных вставках вставленная таблица должна обновлять TbRek всем, что обновляется.
Я предполагаю, что нижняя часть запроса просто для того, чтобы убедиться, что ") (" заменяется на "+".