【问题标题】:What SQL argument have I got wrong?我弄错了什么 SQL 参数?
【发布时间】:2013-10-30 21:20:33
【问题描述】:

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

【问题讨论】:

  • 从 2012 年的工作室恢复工作正常,所以我缺少的论点中有一些东西

标签: sql command-prompt restore


【解决方案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"

【讨论】:

  • 相同结果:意外参数。进入 '-?'求助。 :(
  • 原来在将参数粘贴到命令行窗口时出现某种格式错误...想在没有管理员权限的窗口中尝试,并将其复制到记事本中,重新格式化以获得换行,突然就跑了!?!?!我不知道错误的字符/中断在哪里,因为它没有出现在任何地方
  • @Svend 不幸的是,它比您想象的更常见。尤其是 Word、写字板、Outlook 和一堆其他工具和产品,有一个讨厌的习惯,就是将正常的引号和撇号变成“清晰的”引号,这看起来很花哨,但对大多数语言编译器都无效,包括 DOS 和 T-SQl .
  • 我的破折号 (–) 是一个“破折号”(字符十六进制 2013),而 sqlcmd 想要一个“连字符减号”(-)。微妙的;-)
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2018-12-31
    相关资源
    最近更新 更多