В SQL Server вы можете выполнить агрегирование в запросе на обновление, вам просто нужно сделать это в подзапросе, а затем присоединить его к таблице, которую вы хотите обновить.
UPDATE #temp
SET Dos = Cnt
FROM #temp
INNER JOIN (SELECT Total, COUNT(*) AS Cnt FROM Temp_Table2010 GROUP BY Total) AS s
ON Id = s.Total
Делаем это:
WHERE total in (select id from #temp)
А потом:
INNER JOIN counts
ON t.id = counts.total
является избыточным.
Объединение решает требование "всего в (...)". Сгруппируйте по ключу, а затем присоединитесь.