avatar
Untitled

Guest 33 4th Jan, 2025

MARKUP 1.12 KB
                                           
                         DECLARE @Path NVARCHAR(255) = 'C:\BackupFolder\' -- Ścieżka do folderu z plikami .bak
DECLARE @File NVARCHAR(255)
DECLARE @RestoreCommand NVARCHAR(MAX)

CREATE TABLE #BackupFiles (FileName NVARCHAR(255))

-- Lista plików z folderu
INSERT INTO #BackupFiles
EXEC xp_cmdshell 'dir C:\BackupFolder\*.bak /b'

DELETE FROM #BackupFiles WHERE FileName IS NULL

DECLARE FileCursor CURSOR FOR
SELECT FileName FROM #BackupFiles

OPEN FileCursor
FETCH NEXT FROM FileCursor INTO @File

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @RestoreCommand = '
    RESTORE DATABASE [' + REPLACE(@File, '.bak', '') + '] 
    FROM DISK = ''' + @Path + @File + ''' 
    WITH MOVE ''' + REPLACE(@File, '.bak', '') + '_Data'' TO ''C:\SQLData\' + REPLACE(@File, '.bak', '') + '_Data.mdf'',
         MOVE ''' + REPLACE(@File, '.bak', '') + '_Log'' TO ''C:\SQLLog\' + REPLACE(@File, '.bak', '') + '_Log.ldf'',
         REPLACE'
         
    PRINT @RestoreCommand
    EXEC sp_executesql @RestoreCommand

    FETCH NEXT FROM FileCursor INTO @File
END

CLOSE FileCursor
DEALLOCATE FileCursor
DROP TABLE #BackupFiles
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM