Справедливости ради - вашего решения мы тоже не видим)) Критерии могут быть самые разные. Использовали вы или нет транзакции, использовали вы или нет блоки try/catch. Взяли курсор или избыточный FULL JOIN. Или наполнили код IF ELSE , а хотелось одним запросом... Но как ответил
Сергей - Один случай действительно не показателен. Продолжайте искать.
UPD: Оглядел поверхностно ваш код и в целом понимаю заказчика. Грехов хватает.
set @flag_item = (select [1] from #tmp_insert where [0] = @i)
set @flag_in = (select [2] from #tmp_insert where [0] = @i)
set @flag_out = (select [3] from #tmp_insert where [0] = @i)
set @flag_count = (select [4] from #tmp_insert where [0] = @i)
За такое мой руководитель меня распнет и оставит на солнце голгофы.
SELECT @flag_item = col1, @flag_in=col2,@flag_out=col3, @flag_count=col4 FROM #tmp
WHERE col0 = @i
В 4 раза меньше запросов на одной инструкции , а про неподдерживаемые и нечитаемые поля я вообще лучше промолчу.
Кстати - вы откатываете транзакцию при определенных условиях. А что за транзакция? нету риска что вы откатите некую параллельную нормально функционирующую?