• 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.

    SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".