Slow Trigger performance when big batches (take2)
Instead of doing all that work in the update trigger, you could just capture the DELETED rows and worry about what actually changed, and formatting a pretty message later.  EG

create table price_history (SKU varchar(13), PriceGroup varchar(5), PriceLevel int, Price float, Qty float, ManyOtherColumns Varchar(100), historyDate datetime, ChangedColumns varchar(Max))
CREATE unique clustered INDEX price_history_nc1 ON price_history
(
    SKU ASC,
    PriceGroup ASC,
    PriceLevel ASC,
    HistoryDate ASC
)

go
Create or alter TRIGGER PriceHist_trig_U ON MyPriceTable FOR UPDATE 
AS 
INSERT INTO price_history (SKU, PriceGroup, PriceLevel, price, Qty, ManyOtherColumns, HistoryDate) 
            SELECT DEL.SKU,DEL.PriceGroup,DEL.PriceLevel,DEL.Price,DEL.Qty,DEL.ManyOtherColumns, getdate() 
FROM DELETED DEL 


Or try skipping the trigger and using Change Tracking, Change Data Capture, or Temporal Tables instead.