5

背景:我的机器上同时安装了 SQL2008 和 SQL2012。这导致只有 2012 年的工作室管理运行,任何尝试都不会让我添加 2008 年的工作室。

问题:现在我有备份,出于验证原因需要在没有 2012 管理工作室的情况下在 2008 实例上恢复以避免污染,所以我尝试直接从命令提示符运行恢复。我已经让 2012 工作室为我制作了实际的命令,现在正试图将其放入提示符中,但它不会运行;再多的阅读也不会让我看到无效的论点。我意识到我可能遗漏了一些基本的东西,但无论如何请看看它。

我试图运行的命令是:

C:\Program Files\Microsoft SQL Server\100\Tools\Binn>SqlCmd -E -S SQL2008 "RESTORE DATABASE Basename FROM  DISK = N'D:\Folder\Backup.BAK' WITH  FILE = 1,  MOVE N'Base_Data' TO N'C:\Folder\Base.mdf',  MOVE N'Base_1_Data' TO N'C:\Folder\Base_1.ndf',  MOVE N'Base_2_Data' TO N'C:\Folder\Base_2.ndf',  MOVE N'Base_Log' TO N'C:\Folder\Base_3.LDF',  NOUNLOAD,  STATS = 5"

反应很快:出乎意料的争论。进入 '-?' 求助。

我看不出 -E 或 -S 怎么可能是错误的,并且服务器是正确的 2008 实例。我已经在没有 MOVE 的情况下尝试过,看看那里是否有东西,但它给出了相同的结果。

所以有人可以用我的方式挥出 2 x 4 让我知道我做错了什么吗?谢谢

4

2 回答 2

2

也许像这样?

C:\Program Files\Microsoft SQL Server\100\Tools\Binn>SqlCmd -E -S SQL2008 -Q "RESTORE DATABASE Basename FROM  DISK = N'D:\Folder\Backup.BAK' WITH  FILE = 1,  MOVE N'Base_Data' TO N'C:\Folder\Base.mdf',  MOVE N'Base_1_Data' TO N'C:\Folder\Base_1.ndf',  MOVE N'Base_2_Data' TO N'C:\Folder\Base_2.ndf',  MOVE N'Base_Log' TO N'C:\Folder\Base_3.LDF',  NOUNLOAD,  STATS = 5"
于 2013-10-30T21:31:40.167 回答
1

如另一个答案的评论中所述,此问题最常见的问题似乎是从其他来源复制和粘贴。我的问题是从这篇文章中复制和粘贴:

http://www.howtogeek.com/50295/backup-your-sql-server-database-from-the-command-line/

要解决此问题,请尝试手动输入命令,以便了解每个字符的确切值。通常问题字符是双引号,但它们也可以是单引号,而我的问题实际上是破折号字符是 U-2014,即“EN DASH”。我想即使是空间也可能是非阻塞空间。

于 2014-11-19T03:10:17.547 回答