什么SQL参数我错了?

时间:2013-10-30 21:20:34

标签: sql command-prompt restore

背景:我的机器上安装了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乘4让我知道我做错了什么吗?谢谢

2 个答案:

答案 0 :(得分:1)

也许是这样的?

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"

答案 1 :(得分:0)

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

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

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