You have to be careful when using @@ROWCOUNT. Your example should work as you expect, but the example below will not...
SELECT @MyErr = @@ERROR
IF @@ROWCOUNT > 1 ...
In this situation @@ROWCOUNT will always be 1 because of the SELECT running after the update that saves the error code.
If you need to save both the @@ERROR and @@ROWCOUNT values, use something similar to the code below. You can then refer to @MyErr and @MyCount whenever you want and always get the values from the UPDATE statement.
SELECT @MyErr = @@ERROR, @MyCount = @@ROWCOUNT
Original author: SQL Server FineBuild 1-click install and best practice configuration of SQL Server 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005. 1 Dec 2016
: now over 39,000 downloads.
Disclaimer: All information provided is a personal opinion that may not match reality.
Quote: "When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist." - Archbishop Hélder Câmara