# Physical Restore-----------------------------
# stop the server
net stop MSSQLSERVER
# Delete the current database
del /Q C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MyDatabase.mdf
del /Q C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MyDatabase_log.ldf
# Copy the backup files to the MSSQL data directory
copy C:\backups\sqlserver\MyDatabase.bak C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup
# Restore backup
sqlcmd -S localhost -U sa -P password -Q "RESTORE DATABASE MyDatabase FROM DISK='C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\MyDatabase.bak' WITH REPLACE, RECOVERY"
# Start the server
net start MSSQLSERVER
# Logical Restore----------------------------------
# Create a new database to restore the backup:
sqlcmd -S localhost -U sa -P yourpassword -Q "CREATE DATABASE mydatabase_new"
# Restore the backup file to the new database:
sqlcmd -S localhost -U sa -P yourpassword -Q "RESTORE DATABASE mydatabase_new FROM DISK='C:\mydatabase_backup.bak'"
# Verify that the data has been restored
sqlcmd -S localhost -U sa -P yourpassword -d mydatabase_new -Q "SELECT * FROM mytable"
# Point in time Restore-----------------------------
# Create a new database to restore the backup
sqlcmd -S localhost -U sa -P password -Q "CREATE DATABASE mydatabase_new"
# Restore the backup file to the new database
sqlcmd -S localhost -U sa -P password -Q "RESTORE DATABASE mydatabase_new FROM DISK='C:\mydatabase_backup.bak' WITH NORECOVERY, MOVE 'mydatabase' TO 'C:\mydatabase_new.mdf', MOVE 'mydatabase_log' TO 'C:\mydatabase_new.ldf'"
# Bring the database online by applying the transaction log backup to the restored database:
sqlcmd -S localhost -U sa -P password -Q "RESTORE LOG mydatabase_new FROM DISK='C:\mydatabase_log_backup.trn' WITH NORECOVERY"
# Differential Restore--------------------------------
# restore the full backup
RESTORE DATABASE dbname FROM DISK='C:\backup\full_backup.bak' WITH NORECOVERY
# restore the differential backup
RESTORE DATABASE dbname FROM DISK='C:\backup\diff_backup.bak' WITH RECOVERY
# Incremental Restore-----------------------------------
# restore the full backup
RESTORE DATABASE dbname FROM DISK='C:\full_backup.bak' WITH NORECOVERY
# restore the incremental backup
RESTORE LOG dbname FROM DISK='C:\incremental_backup.trn' WITH NORECOVERY