• Below is the code to restore your database [A] to a database with name [A_SB] using the FULL and two LOG backups of database [A]. You can query the standby database [A_SB] between each restore action.

    I don't know what the logical names of your databasefiles are. I assumed this to be "A" for the datafile and "A_log" for the logfile. Alter these names in the script if the names are different.

    -- restore the FULL backup using the STANDBY option (so the database can be queried after the restore)

    RESTORE DATABASE [A_SB]

    FROM DISK = N'E:\A_Full.bak'

    WITH FILE = 1

    , MOVE N'A' TO N'E:\A_SB.mdf'-- change A to the logical DATA filename within your database

    , MOVE N'A_log' TO N'E:\A_SB_log.ldf'-- change A_log to the logical LOG filename within your database

    , STANDBY = N'E:\A_SB_ROLLBACK_UNDO.BAK'

    , NOUNLOAD, STATS = 10

    GO

    -- restore the first LOG backup, taken after the FULL backup

    RESTORE DATABASE [A_SB]

    FROM DISK = N'E:\A_Tran.trn'

    WITH FILE = 1

    , STANDBY = N'E:\A_SB_ROLLBACK_UNDO.BAK'

    , NOUNLOAD, STATS = 10

    GO

    -- optional: restore consecutive LOG backups, taken after the FULL backup, up untill the point-in-time you need

    /********/

    -- at this point the database is in the state where the delete action is not executed yet

    -- you can query the table and see all the records available

    /********/

    -- restore the last LOG backup to see that all executed action are logged in the backup

    RESTORE DATABASE [A_SB]

    FROM DISK = N'E:\A2_Tran.trn'

    WITH FILE = 1

    , STANDBY = N'E:\A_SB_ROLLBACK_UNDO.BAK'

    , NOUNLOAD, STATS = 10

    GO

    /********/

    -- at this point the database is in the state after the delete action is executed

    -- you can query the table and see some records are deleted

    /********/

    ** Don't mistake the ‘stupidity of the crowd’ for the ‘wisdom of the group’! **