I have a large web application using a COM data access layer against an SQL Server 2005 database. By default, the isolation level is READ_COMMITTED. Now I understand how READ_COMMITTED_SNAPSHOT isolation level works, and reading MSDN it says you can turn it on transparently. However, I'm still sceptical. :) Is it guaranteed, in an implementational manner, that my application will not break (do not assume the application does everything by the book) if I change from READ_COMMITTED to READ_COMMITTED_SNAPSHOT? No additional exceptions will be thrown to the COM layer? Transaction semantics are the same?
PS. By an implementational manner, I mean something along the lines that the READ_COMMITTED_SNAPSHOT isolation level was implemented intentionaly to work exactly as READ_COMMITTED, just using row versioning instead of locks?
Thank you for any insights or your own experiences switching to this isolation mode.