2012-06-22 96 views
0

我對我的問題有點困惑。我需要在本地恢復的遠程服務器上有一個備份文件。我可以在沒有問題的情況下恢復文件,但是由於某些原因,我將該路徑的變量添加到默認備份位置的路徑中。如果我直接放置路徑,它就會起作用,所以我不相信共享是問題所在。我包含了錯誤和我的路徑變量的打印結果。我已經複製了打印的路徑並將其替換爲我的變量,並且它工作得很好。由於附加了路徑,因此當然無法找到該文件。恢復路徑變量的問題

我的腳本

--Declare the Network Drive 
Exec XP_CMDSHELL 'net use Y: \\ProdServer\Backups' 

--Declare the Filepath 
declare @Backupfilename as nvarchar(500) 
declare @filename as nvarchar(40) 
Set @filename = (Select Top(1) CONVERT(VARCHAR(36),name)+'.bak' from ProdServer.msdb.dbo.backupset WITH (nolock) 
     where database_name='ProdDB' 
      order by backup_set_id desc) 

Set @Backupfilename = ''''+'Y:\' + @filename + '''' 
Print @backupfilename 

--Start the Actual Restore 
RESTORE DATABASE [TESTRestore] FROM 
DISK = @BackupFileName WITH FILE = 1, 
MOVE N'ProdDB' TO N'D:\Data\ProdDB_Test.mdf', 
MOVE N'ProdDB_Log' TO N'D:\ProdDB_Test.ldf', 
NOUNLOAD, REPLACE, STATS = 10 
GO 


--Clear the Defined Network Path 
EXEC XP_CMDSHELL 'net use Y: /delete' 

結果

'Y:\ProdDB_backup_201206220600.bak' 

消息3201,級別16,狀態2,行15
無法打開備份設備「C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL.1 \ MSSQL \備份\ 'Y:\ ProdDB_backup_201206220600.bak'」。
操作系統錯誤123(文件名,目錄名稱或卷 標籤語法不正確。)。
消息3013,級別16,狀態1,行15
RESTORE DATABASE正在異常終止。

感謝

回答

1

我能夠通過傳遞路徑到一個臨時表,然後當我需要它召回來解決這個問題。