Untitled
Guest 33 4th Jan, 2025
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