Files
DUTAS/SqlAgent/02_Test/6_Backup_Restore/RestoreDB.sql
2025-11-02 14:50:48 -05:00

32 lines
1.0 KiB
Transact-SQL

USE master;
GO
DECLARE @SrcDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- original database
DECLARE @NewDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- database name to restore as
DECLARE @BackupPath NVARCHAR(260) = '\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Backup\' + @SrcDB + '.bak';
DECLARE @SQL NVARCHAR(MAX);
-- Optional: check logical file names inside backup
-- RESTORE FILELISTONLY FROM DISK = @BackupPath;
-- Dynamic SQL for restore
SET @SQL = '
-- Optional: disconnect active connections
ALTER DATABASE [' + @NewDB + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [' + @NewDB + ']
FROM DISK = N''' + @BackupPath + '''
WITH MOVE N''' + @SrcDB + ''' TO N''\\DOES-RAINVM-TST\E$\SQLData\' + @NewDB + '.mdf'',
MOVE N''' + @SrcDB + '_log'' TO N''\\DOES-RAINVM-TST\E$\SQLLogs\' + @NewDB + '_log.ldf'',
REPLACE, STATS = 10;
-- Set database back to multi-user
ALTER DATABASE [' + @NewDB + '] SET MULTI_USER;
';
-- Execute restore
EXEC(@SQL);
PRINT 'Database restored successfully as ' + @NewDB;
GO