
No need to apology, nor go away, Jay. ;-)
Your post lead me on the right track, (hopefully) understanding the OPs
scenario. The OP scenario I believe is using some non-SQL Server snapshot
technology. This technology need to behave like a SQL Server restore with
NORECOVERY (UNDO not performed).
Regarding SQL Server snapshot, you do use the RESTORE command to revert to
such a snapshot. Thing is that you cannot apply NORECOVERY to such a RESTORE
command. Technically, SQL Server cannot put the database in a state from
which log backups can be applied (like magically make the log as if from
some point in time only did REDO and not UNDO)...
Now, above being said from a pure reasoning standpoint, I just have to give
it a spin. Below code does that. What surprises me is that RESTORE from a
database snapshot accepts the NORECOVERY option, but the database is
accessible. It seems like the NORECVOERY option is a no-op; and IMO should
produce an error message...
USE master
GO
ALTER DATABASE Northwind SET RECOVERY FULL
GO
CREATE DATABASE n
ON PRIMARY
( NAME = N'Northwind', FILENAME =
N'C:\DemoDatabases\DbFiles\a\Northwind.ss')
AS SNAPSHOT OF Northwind
GO
UPDATE Northwind.dbo.Categories
SET Description = 'Cheeeesus'
WHERE CategoryID = 4
GO
RESTORE DATABASE Northwind FROM DATABASE_SNAPSHOT = 'n' WITH NORECOVERY
--Above NORECOVERY is a no-op. Database is accessible:
SELECT * FROM Northwind.dbo.Categories
DROP DATABASE n
--
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://sqlblog.com/blogs/tibor_karaszi