Table Level Recovery for Selected SQL Server Tables

Andrew Jackson | Modified: February 6th, 2019 | SQL |

Unfortunately, there is no direct method to perform a table level recovery for selected SQL Server tables. However, you can execute a table level backup, restore instead, and achieve the required output. Production databases generally have important data stored within them. Therefore, users with such database come across the need of performing an object level recovery. This is because, databases are usually excessively large and therefore performing a complete database recovery would mean the investment of many time and administrative efforts. This segment is a walkthrough the workarounds applicable for accomplishing a table level recovery for selected SQL Server tables.

Variety of Backup and Restore Options to Choose From

Administrators sometimes remain unaware of the fact that backups are for BCP, i.e. Business Continuity Planning. This BCP procedure is not only applicable to an entire database recovery / restore, but also on object level recovery. Object level recovery is much important from business point of view, owing to the recovery time consumed in complete database recovery.

Alternative #1

Restoring the current database to a different database is also a possible option. This kind of option is not striking but also quickly and easily executable. You can restore your current database to another database and then continue to copy the desired table to your database. Here you need to either perform a full restore or point in recovery restoration. Limitations of this option is that, not every time is it possible to perform restoration of a large database due to lack of time or disk space to store the output. In addition, the option will only consider restoring data and triggers plus foreign keys needs to be taken care of by the administrator.

Alternative #2

Taking a database snapshot is another option for making it possible to restore a particular table from a database that is sized heavily. If in any case, an issue happens, you will be capable of fixing the contents within via the snapshot that was taken earlier which serves as the data source. The snapshot must be available with you before the issue has taken place. In the case of recurrent and parallel updates taking place on the respective table via different user access, the option might not prove helpful. A snapshot of every update occurring on the table needs to be taken and preserved.

Alternative #3

Make use of the SQL Server View. Give rise to a secondary database and move the table in it. The second database backup will then take place separately. Therefore, at the time of recovery, only a minor amount of data can be restored as per the requirement. Creating a view is best and easiest method as it enables selection of complete table contents. However, the table needs to be dropped or renamed within the original database for creation of the view. During changes taking place in the column definition of the table, ensure that the metadata of the view is also updated accordingly.

On A Comparative Note:

  1. Restoration to another database is the most quick and effortless solution available for restoration of table. However, the procedure requires more than equal amount of disk space for storing the restored output and additionally has issues managing the triggers and foreign keys.
  2. Database snapshot on the other hand is a great solution if the records in original database table are not frequently updated, as this needs to be updated further as a new snapshot for every change that takes place. However, it is not suitable for databases on which parallel users perform updation in a table.
  3. Last on the segment is view creation that helps separate the table from the rest of the database objects without any data loss condition being encountered. However, the metadata needs to be updated on a periodic note and the new DB demands complete maintenance.

Conclusive Observation:

These were some of the possible options meant for performing a table level recovery for selected SQL Server tables. As explained above in the comparative note, every option has its own set of advantages and limitations / drawbacks therefore, administrators are supposed to consider both before implementing any, based on the server setup and requirement of the setup environment. However, another possible way is to use a third party SQL Recovery Tool instead of going the manual way. Software applications don’t require much end user efforts or time to be invested. Moreover, tools are designed to be user friendly therefore, they render customised output that helps save storage space from being occupied unnecessarily via selective table restore without a backup required.