I have a following query:
UPDATE TOP (@MaxRecords) Messages SET status = \'P\' OUTPUT inserted.* FROM Messages where Status = \'N\' and InsertDate &
You can try sub query like
UPDATE Messages SET status = 'P' WHERE MessageId IN (SELECT TOP (@MaxRecords) MessageId FROM Messages where Status = 'N' and InsertDate >= GETDATE() ORDER BY Priority) output inserted.*