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

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 に答える