I'm working on SQL Server 2005 and I see that until the Transaction is not committed the changes made are not visible in the database. My question is that If the changes are not done until commit is executed then why do we rollback the transaction if any error occurs in between the Transaction ??? Even if I don't rollback the transaction i still see the same state of the database as it was before the start of the Transaction so what's the point of rolling back a transaction then ?