Я могу сделать это с помощью временной таблицы. Можно ли выполнить эти два шага в одном запросе на обновление? Все возможные даты уже существуют в TargetTable (вставки не требуются). Я надеюсь сделать это более эффективным, поскольку он часто запускается, поскольку пакеты данных периодически вливаются в таблицу T2.
Таблица T1: список отдельных дат, вставленных или обновленных в этом пакете
Таблица T2: поле datetime2 (3), за которым следуют несколько полей данных, может быть тысячи для любой конкретной даты
Цель: обновить TargetTable: поле даты, за которым следует поле int для хранения общего количества записей по дате (возможно, только что пришло в T2 или могут быть дополнительные записи, добавленные к существующим записям уже в T2)
select T1.date as TargetDate, count(*) as CountF1
into #Temp
from T1 inner join T2
on T1.date = cast(T2.DateTime as date)
group by T1.date
update TargetTable
set TargetField1 = CountF1
from #Temp inner join TargetTable
on TargetDate = TargetTable.Date