在Linux SQL Server上还原AdventureWorks2017的备份

时间:2019-04-01 19:35:57

标签: sql-server database-backups

我发现自己处于一种非常奇怪的情况:以前曾经工作过的东西不再起作用了。

我正在尝试使用以下T-SQL代码在运行Ubuntu的SQL Server上恢复Adventureworks备份:

RESTORE DATABASE AdventureWorks2017
FROM DISK = '/home/sergey/AW/AdventureWorks2017.bak'
WITH MOVE 'AdventureWorks2017' TO '/home/sergey/AW/AdventureWorks2017.mdf',
     MOVE 'AdventureWorks2017_log' TO '/home/sergey/AW/AdventureWorks2017_log.ldf'
GO

但是我遇到一个错误:

  

[S0001] [3142]无法在现有的“ /home/sergey/AW/AdventureWorks2017.mdf”上还原文件“ AdventureWorks2017”。重新发出RESTORE语句,使用WITH REPLACE覆盖现有文件,或者使用WITH MOVE标识备用位置。

此博客文章似乎在谈论类似的问题,但是提到的食谱无效。

我们非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

错误消息指出目标文件已经存在。

尝试

RESTORE DATABASE AdventureWorks2017
FROM DISK = '/home/sergey/AW/AdventureWorks2017.bak'
WITH MOVE 'AdventureWorks2017' TO '/home/sergey/AW/AdventureWorks2017.mdf',
     MOVE 'AdventureWorks2017_log' TO '/home/sergey/AW/AdventureWorks2017_log.ldf',
     REPLACE
GO

可以在here中找到RESTORE Transact-SQL命令的完整文档。