Question:
When I run a stored procedure which uses cursors to do a selection of counts based on a view, it returns the correct (expected) numbers. However, when I rerun the same procedure (using the same connection) it returns zero counts.
When I open a new connection it again returns the correct count once, and then zeros subsequently.Is there an explanation for this?
Answer:
The answer is that the value stored in @@rowcount is volatile and that when you read it, you destroy it. Each time the value is read, it resets it to zero. So, its only good the first time you get it.