我对我的问题有点困惑。我在远程服务器上有一个备份文件,需要在本地恢复。我可以毫无问题地恢复文件,但是由于某些原因,当我将路径的变量附加到我的路径时,它是默认备份位置。如果我要直接放置路径,它会起作用,所以我不相信共享是问题所在。我包括了错误和路径变量的打印结果。我已经复制了打印的路径并用我的变量替换了它,它工作得很好。由于附加了路径,因此当然找不到文件。
我的剧本
--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\Backup\'Y:\ProdDB_backup_201206220600.bak''。
操作系统错误 123(文件名、目录名或卷标语法不正确。)。
消息 3013,级别 16,状态 1,第 15 行
RESTORE DATABASE 异常终止。
谢谢