В SQL 2008 можете просто да използвате MERGE - много по-просто от който и да е от вашите подходи.
Също така не съм с вас относно „НЕ искам да използвам транзакции от съображения за производителност“ - всяка DML команда, която изпълнявате, така или иначе е част от някаква транзакция, така че има транзакции, дори ако не ги отворите изрично. Ако имате проблеми с производителността, можете да публикувате повече подробности, за да получите повече помощ за производителността.
Редактиране:Ако имате нужда от наистина бързи вмъквания, не вмъквайте един ред наведнъж. Добавете набори от редове и използвайте MERGE - предимството, което ще получите от вмъкването на партиди от редове наведнъж, трябва далеч да надвишава всички незначителни подобрения, които ще получите от оптимизиране на скоростта на добавяне на един ред.
Както и да е, теоретичните разсъждения за всичко, свързано с бази данни, обикновено не са достатъчно добри. Наистина трябва да направите бенчмарк, за да определите кое е по-бързо. Това, което наричате „ненужно запитване за съществуваща линия“, може да е напълно незначително и не знаете дали е така, докато не го измерите при реалистични условия.