Ну,
Я столкнулся с подобной проблемой при использовании sybase, которая указывает, что что-то может быть не так с «если».
declare @counter1 int
declare @counter2 int
select @counter1 = @@rowcount
if @@rowcount = 0 return
select @counter2 = @@rowcount
вывод:
counter1 = 3
counter2 = 0
Я бы ожидал 3 (оригинал) или 1 (из-за выбора).
Это еще более странно из-за
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1540/doc/html/san1278452893271.html
"@@ rowcount не сбрасывается в ноль любым оператором, который не влияет на строки, , таким как оператор IF ."
с другой стороны, существует большая путаница, как это действительно работает (на основе обсуждения в интернете)
В конце моего решения в первой строке я назначаю @@ rowcount переменной, и моя логика основана на этой переменной