我发现自己处于一种非常奇怪的情况:以前曾经工作过的东西不再起作用了。
我正在尝试使用以下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标识备用位置。
此博客文章似乎在谈论类似的问题,但是提到的食谱无效。
我们非常感谢您的帮助!
答案 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命令的完整文档。