In a stored procedure, several "update" sql statements are being called. If any of them fails, I want to roll back the previously executed update statements in the same stored procedure. Is there a way?
You could wrap the whole thing in a begin tran/end tran. To quote from MSDN:
BEGIN TRANSACTION represents a point at which the data referenced by a connection is logically and physically consistent. If errors are encountered, all data modifications made after the BEGIN TRANSACTION can be rolled back to return the data to this known state of consistency. Each transaction lasts until either it completes without errors and COMMIT TRANSACTION is issued to make the modifications a permanent part of the database, or errors are encountered and all modifications are erased with a ROLLBACK TRANSACTION statement.
In response to your comment, combining this with nested Try/Catch might work for you.