How to Restore Specific Table(s) from SQL Database Backup File? (Complete Guide 2026)
Our content follows trusted Editorial Standards - accurate & unbiased.
Summary: SQL Server has no built-in feature to restore a single table from .BAK file — you have to restore the complete database first and then copy the required table back using T-SQL. If the backup file is corrupt or a full restore isn't possible for you, Stellar Backup Extractor for MS SQL can help you recover specific tables directly without a full restore. In this write-up, we'll learn these specific table recovery methods step-by-step.
Corruption in SQL database objects, accidentally deleting a table, and losing records after mistakenly using the DELETE statement are some of the common scenarios when you need to recover a specific table from SQL Server database backup. In some cases, you may encounter errors while accessing a particular table in the database and the rest of the database is working normally. Here is an example of a user query: “I have a production database which has 200 tables. Since last week I am unable to access one of the tables. When I just select top 100 rows, it keeps on running.”
Such a situation makes a full database restore unnecessary and time-consuming. And you require to restore only a specific object. You can restore backups in SQL Server directly only at the database level instead of table level. For a specific table recovery, you must first restore the backup as a separate database and then copy the corrupted or affected table back to the actual database using queries.
What is a SQL .BAK File and Why can’t you Restore One Table Directly?
A backup (.bak) file in SQL Server store the database snapshot. Depending on how you created the backup, it includes:
A full backup
Differential backup
Filegroup backup
Partial backup.
To create it, you can use:
• BACKUP DATABASE command
• SQL Server Management Studio (SSMS
You can’t restore single table directly from a backup, as there is no built-in table-level restore option option available in SQL Server to do so. SQL Server is designed to restore .BAK files at the database level only. Using the RESTORE DATABASE command on this backup file allows you restore the complete database in one go. To access a specific object, you need to reconstruct the database from backup. For this, first create a new database from the backup and then copy the required tables using T-SQL.
Prerequisites before Restoring a Specific SQL Table
Before restoring specific tables from SQL database backup, confirm the following:
- Make sure you’ve access to the SQL Server instance
- Ensure your system have free space available, i.e. equal to the original data size.
- You have all permissions on your database, like RESTORE DATABASE privileges.
- There should be a healthy backup file and you can verify it.
- Make sure the name of the database you create using your backups is distinct. This helps to avoid conflicts.
How to Recover Specific Table(s) from SQL Database Backup File?
To restore individual table from the backup file, follow these methods.
Method 1 – Restore your Backup using SSMS
To recover a specific table in SQL Server, here are the below-cited steps:
Step 1: Restore the Backup as a Separate Database
The first step is to restore the backup to a new database with a different name.
For example:
Original Database:StellarDBRestored Database:StellarDB_RestoredThe restored database acts as a recovery source and allows you to access the tables stored inside the backup. Next, you can use the restored database as a recovery source to allow you access the tables in the backup file. You can also check the logical file names stored in the backup.
The below command will display the logical file names in backup.
RESTORE FILELISTONLYFROM DISK = 'D:\BackupSQL\StellarDB.bak'Next, restore the backup by using this command:
RESTORE DATABASE StellarDB_RestoredFROM DISK = N'C:\SQLBackups\StellarDB.bak'WITHMOVE 'StellarDB' TO 'C:\SQLData\StellarDB_Restored.mdf',MOVE 'StellarDB_log' TO 'C:\SQLData\StellarDB_Restored_log.ldf',STATS = 10;GONote: The MOVE option tells SQL Server to create new physical database files for the restored database. Without this option, your restore operation may fail due to file name conflicts.
After the restore operation completes successfully, SQL Server contains two separate databases:
- Original database
- The restored database containing database copy
Before recovering, confirm that the table is available in the restored database:
SELECT *FROM StellarDB_Restored.dbo.EMP;GOIf it returns the records, the table is ready for recovery.
Step 2: Recover the Required Table
After restoring the database backup to a new database, you can copy the specific tables to the destination database. Below, we’ve mentioned the process to restore specific tables based on three scenarios.
Scenario 1: When rows are deleted and tables still exist
You can use the following code in SSMS wherein you can combine the INSERT command with the SELECT command (see the below example). This will only add the missing rows to the table in the original database.
USE My_Database
GO
SET IDENTITY_INSERT my_table ON
INSERT INTO my_table_1 (column_name)SELECT * FROM My_Database_Restored.my_table
SET IDENTITY_INSERT my_table OFFScenario 2: SQL database table was dropped completely and you need to recreate them:
You can use the following code with the SELECT INTO command for copying the rows and table structure to the original database.
USE My_Database
GO
SELECT * INTO my_table
FROM My_Database_Restored.my_tableScenario 3: Due to Updates or an unexpected event, some rows in your database table has damaged
You can run the below command to update the damaged and missing data:
USE My_Database
GO
SET IDENTITY_INSERT my_table ON
MERGE my_table dest
USING (SELECT * FROM My_Database_Restored.dbo.my_table) AS src
ON dest.(column_name_1)= src.(column_name_1)
WHEN MATCHED THEN UPDATE
SET dest. (column_name_2) = src. (column_name_2), dest. (column_name_3) = src. (column_name_3)
WHEN NOT MATCHED THEN INSERT
(column_name_1,column_name_2,column_name_3) VALUES
(src. (column_name_1), src. (column_name_2), src. (column_name_3));
SET IDENTITY_INSERT my_table OFFYou may have to recreate indexes, views, constraints, triggers, or rules functions, if table contains them.
Next, check SQL database for integrity issues, using the DBCC CHECKDB command.
Drawbacks of Recovering Specific Tables using the Manual Method
Some common limitations are:
- You need to restore the entire database backup, even if only one table needs to be recovered.
- The large backup restore can take time and also require temporary storage space.
- The native tools may not help you recover specific objects, if the backup file is corrupted.
- SQL Server version compatibility issues may prevent the backup from being restored successfully.
- After recovery, it may require additional validation table dependencies such as foreign keys, triggers, indexes, and constraints.
- SQL Server does not provide a preview of table contents before completing the restore operation.
Method 2: Restore Specific Tables using Stellar Backup Extractor for MS SQL – An Alternative Solution
If the above method fails, your backup file gets corrupt, or you may not be able to restore any of your table(s), then you can use Stellar Backup Extractor for MS SQL module in Stellar Repair for MS SQL Technician. This tool can help you restore specific tables from .BAK file. It doesn’t require a full SQL Server database restore. It even works if your backup file is corrupted.
How to Use Stellar Backup Extractor for MS SQL?
Let’s explore the steps to recover tables from SQL database backup file by using the software:
- Download and launch the Stellar Repair for MS SQL Technician and select the Stellar Backup Extractor for MS SQL module.
- A dialog box will open. You can use the ‘Browse’ open to select the file (if you know the location) or use the ‘Search’ option to locate the .bak file on your system.
- Choose the file from which you want to extract data and click Scan.
- After clicking the Scan, select any of the given modes:
- Standard Scan (Recommended) – This mode scans and repairs normal corruption in .BAK file.
- Advanced Scan – Use this mode when you do not get desired result after Standard scan. This mode scans the severely corrupted .BAK file.
- Now, you will get a new dialog box, ‘Select Backup Set’. This will display the backups if they are stored in different files.
- Select the Backup Set and click ‘Next’.
- When the repair is completed, you will get a ‘Repair Complete’ dialog box.
- You can see the preview of the repaired files.
- Now, you can select the tables you want to save and then click ‘Save’.
- A new dialog box comes up, displaying multiple saving options – MDF, CSV, HTML, and XLS.
- Select the saving option as MDF and enter the required details.
- Choose the destination for saving the file and click ‘Save’.
- The ‘Save Complete’ dialog box appears when the data is successfully saved.
Manual Method vs Stellar Backup Extractor — Which Should You Use?
To choose which method you should use can vary with several factors; let’s look at the comparison table:
| Manual SSMS method | Stellar Backup Extractor | |
| Full database restore | It requires you to restore entire .BAK file into a temporary database and then copy the required table back using T‑SQL. | You can directly repair/restore specific tables from backup file |
| Time consuming | It is time‑consuming as it requires multiple steps. | It requires less steps |
| SQL Server Instance | Requires a running SQL Server instance. | No SQL Server instance is required. |
| Support Corrupt Backup | Cannot recover from corrupt .BAK files. | It can work with corrupt .BAK files. |
| Output Formats | Recovery through T‑SQL operations only. | Multiple formats: MDF, CSV, HTML, XLS. |
| Disk Space | High (full database restore required). | Lower (only selected tables extracted). |
| Selective Recovery | Possible only after full restore. | Allows you directly perform selective table recovery. |
| Preview Option | No preview before recovery. | Preview tables before saving. |
Conclusion
SQL Server cannot restore individual tables directly from a backup (.BAK) file. In this post, we’ve covered 2 methods for recovering specific tables from a SQL Server backup in detail. You can recover individual tables manually after restoring the full database. But if the backup file becomes damaged or you need to restore tables without performing a full restore, then you can use a backup repair tool like Stellar Backup Extractor for MS SQL. For this, you can download Stellar Repair for MS SQL Technician. It helps you to selectively restore the tables from a backup (.BAK) file.
FAQs:
You can’t directly preview the tables in your backup file before a restore process in SQL Server. However, you can check the backup file structure, header information, logical database, etc. using the following commands:
- RESTORE FILELISTONLY
- RESTORE HEADERONLY
- RESTORE LABELONLY
For a table-level preview, use Stellar’s backup extractor tool. It allows you to preview actual table contents.
Yes, you can do so manually. The process is same as restoring table from a full backup. First, restore the full backup to a temporary database. Then, apply the or transaction log backups. But make sure the restore sequence must remain intact.
For restoring backup in detail, read the blog How to backup and restore a SQL server database.
You can restore the table from SQL Server backup file manually using
- INSERT INTO
- SELECT INTO
- MERGE RESTORE DATABASE
- DBCC CHECKTABLE.
This process works when restoring to the same version or a newer version of SQL Server like
- SQL Server2016
- SQL Server2017
- SQL Server 2019
- SQL Server2022
- SQL Server2025