【问题标题】:Problems with Path Variable for Restore用于还原的路径变量问题
【发布时间】:2012-08-02 06:37:48
【问题描述】:

我对我的问题有点困惑。我在远程服务器上有一个备份文件,需要在本地恢复。我可以毫无问题地恢复文件,但是由于某些原因,当我将变量添加到我的路径的路径中时,它是默认备份位置。如果我要直接放置路径,它会起作用,所以我不相信共享是问题。我包括了错误和路径变量的打印结果。我已经复制了打印的路径并用我的变量替换了它,它工作得很好。由于附加了路径,因此当然找不到文件。

我的脚本

 --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 异常终止。

谢谢

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    我能够通过将路径传递到临时表中然后在需要时调用它来解决问题。

    【讨论】:

      猜你喜欢
      • 2023-02-16
      • 2014-04-01
      • 1970-01-01
      • 2020-06-11
      • 2021-08-03
      • 2021-11-28
      • 1970-01-01
      • 2011-06-17
      • 2020-11-12
      相关资源
      最近更新 更多