Вы можете использовать @@ ROWCOUNT , чтобы проверить и увидеть количество строк, затронутых предыдущим запросом.
DoYourQuery()
IF @@ROWCOUNT = 0
BEGIN
YourAlternateQuery()
END
Что касается вашего вопроса о том, что это то, что вы должны делать, я думаю, что это будет в каждом конкретном случае. Это похоже на размещение логики потока управления внутри любой другой программы, иногда операторы IF
являются правильным инструментом для достижения ваших целей, но их не следует использовать в каждой ситуации.