それは結論間違ってる気が・・・

まずは例外に依存するロジックは駄目ですよを読んでください。
一番最初のコードは問題外としても、二番目のコードがベストだとも思えない*1んだけど、問題はそこじゃなくて、結論。

このケースのように、事前に対象データの絞り込みは言語で行うほうが良いケースもあります。

例外に依存するロジックは駄目ですよ

うーん、これの問題は、「SQL 発行しすぎ」って点であって、「絞り込みをどこで行うか」じゃないと思うんだけど・・・
BCP とかでがつっと DB に放り込んで、INSERT SELECT 文一回だけ発行って手も考えられなくはないし。

*1:これに関してはコメントでかたぎりさんが指摘しています