0
以下のスクリプトを使用して、.bakファイル名を手動で入力したデータベースを復元しました。私はデータベースを復元するために自動化プロセスを実行する必要があります。私はリモートサーバフォルダから.bakファイル名を取得するためにxp_DirTreeでストアドプロシージャを使用しようとしました。ストアドプロシージャは結果なしで実行されます。私がローカルパスを試してみたら、.bakファイルをフォルダに入れることができます。私はそれが許可の問題だと思ったが、パーミッションは問題ありません。誰でも私に何か原因を教えてもらえますか?データベースを復元するために使用ディレクトリから.bakファイル名を自動的に復元するには?
スクリプト:
CREATE TABLE #CustomerrestoreFiles(
backupfile VARCHAR(100))
--Drop Table #CustomerrestoreFiles (backupfile)
VALUES
('Customer_backup_2016_09_15_203001_9888161'),
('Customer_backup_2016_10_10_203001_7101588'),
('Customer_backup_2016_10_14_203001_6621303'),
('Customer_backup_2016_10_15_203001_5397847'),
('Customer_backup_2016_10_16_203002_0291343'),
('Customer_backup_2016_10_17_203002_2861353')
DECLARE @CustomerDBfileToRestore VARCHAR(100), @backupLocation varchar(500), @mdfLocation varchar(500), @ldfLocation varchar(500)
DECLARE restorecursor CURSOR FOR
SELECT backupfile FROM #CustomerrestoreFiles
OPEN restorecursor
FETCH NEXT FROM restorecursor
INTO @CustomerDBfileToRestore
WHILE @@FETCH_STATUS = 0
BEGIN
SET @backupLocation = 'F:\Customer bak files' + '\' + @CustomerDBfileToRestore + '\' + @CustomerDBfileToRestore +'.bak'
SET @mdfLocation = 'F:\Files\Customer_Restore_Files\' + @CustomerDBfileToRestore + '.mdf'
SET @ldfLocation = 'F:\Files\Customer_Restore_Files\' + @CustomerDBfileToRestore + '.ldf'
RESTORE DATABASE @CustomerDBfileToRestore
FROM DISK = @backupLocation
WITH FILE = 1,
MOVE 'Customer_Data' TO @mdfLocation,
MOVE 'Customer_Log' TO @ldfLocation,
NOUNLOAD, REPLACE, STATS = 1
FETCH NEXT FROM restorecursor
INTO @CustomerDBfileToRestore
END
CLOSE restorecursor
DEALLOCATE restorecursor
ありがとうございます。私はUNCの道を試みました。まだ空の結果が得られます。 – Amelia