• ScottPletcher - Friday, February 23, 2018 12:51 PM

    Yes, there is.  It's called "SNAPSHOT ISOLATION".  That's almost exactly like Oracle: point-in-time for SELECTs, version rows stored to handle long-running queries, readers don't block writers, writers don't block readers, etc.  SQL offers two way to implement it.

    1) Set the entire db to SNAPSHOT (SET READ_COMMITTED_SNAPSHOT ON).  All trans using normal READ COMMITTED will run as snapshot, with no app changes required.

    2) Set db to ALLOW_SNAPSHOT_ISOLATION.  Individual trans can then specify snapshot or not.

    If I'm not wrong, the default isolation level of SQL Server 2014 is READ COMMITTED SNAPSHOT. Please correct me if I'm begin wrong.