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) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial: If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them.