@@ -325,10 +325,30 @@ IF (SELECT RIGHT(@BackupPathLog, 1)) <> '\' --Has to end in a '\'
325325 SET @BackupPathLog + = N ' \' ;
326326 END ;
327327
328+ /* Move Data File*/
329+ IF (SELECT RIGHT (@MoveDataDrive, 1 )) <> ' \' -- Has to end in a '\'
330+ BEGIN
331+ RAISERROR (' Fixing @MoveDataDrive to add a "\"' , 0 , 1 ) WITH NOWAIT ;
332+ SET @MoveDataDrive + = N ' \' ;
333+ END ;
334+
335+ /* Move Log File*/
336+ IF (SELECT RIGHT (@MoveLogDrive, 1 )) <> ' \' -- Has to end in a '\'
337+ BEGIN
338+ RAISERROR (' Fixing @MoveDataDrive to add a "\"' , 0 , 1 ) WITH NOWAIT ;
339+ SET @MoveLogDrive + = N ' \' ;
340+ END ;
341+
328342
329343
330344IF @RestoreDatabaseName IS NULL
331- SET @RestoreDatabaseName = @Database;
345+ BEGIN
346+ SET @RestoreDatabaseName = QUOTENAME (@Database);
347+ END
348+ ELSE
349+ BEGIN
350+ SET @RestoreDatabaseName = QUOTENAME (@RestoreDatabaseName)
351+ END
332352
333353
334354IF @BackupPathFull IS NOT NULL
@@ -460,12 +480,16 @@ IF @MoveFiles = 1
460480 CASE
461481 WHEN Type = ' D' THEN @MoveDataDrive
462482 WHEN Type = ' L' THEN @MoveLogDrive
463- END + REVERSE (LEFT (REVERSE (PhysicalName), CHARINDEX (' \' , REVERSE (PhysicalName), 1 ) - 1 )) + ' '' ' AS logicalcmds
483+ END + CASE WHEN @Database = @RestoreDatabaseName THEN REVERSE (LEFT (REVERSE (PhysicalName), CHARINDEX (' \' , REVERSE (PhysicalName), 1 ) - 1 )) + ' '' '
484+ ELSE REPLACE (REVERSE (LEFT (REVERSE (PhysicalName), CHARINDEX (' \' , REVERSE (PhysicalName), 1 ) - 1 )), @Database, SUBSTRING (@RestoreDatabaseName, 2 , LEN (@RestoreDatabaseName) - 2 )) + ' '' '
485+ END AS logicalcmds
464486 FROM #FileListParameters)
465487
466488 SELECT @MoveOption = @MoveOption + Files .logicalcmds
467489 FROM Files;
468-
490+
491+ IF @Debug = 1 PRINT @MoveOption
492+
469493 END ;
470494
471495
516540 SELECT @DatabaseLastLSN = CAST (f .redo_start_lsn AS NUMERIC (25 , 0 ))
517541 FROM master .sys .databases d
518542 JOIN master .sys .master_files f ON d .database_id = f .database_id
519- WHERE d .name = @RestoreDatabaseName AND f .file_id = 1 ;
543+ WHERE d .name = SUBSTRING ( @RestoreDatabaseName, 2 , LEN (@RestoreDatabaseName) - 2 ) AND f .file_id = 1 ;
520544
521545 END ;
522546
0 commit comments