まず、私は DBA ではなく、SQL Server の (管理者としての) 経験もありません。そのため、回答する際は音節の少ない単語を使用してください...
SQL Server 2008 R2 を実行しており、パーティション分割されていない双方向のトランザクション レプリケーションを設定する概念実証スクリプトを作成しようとしています。MS サイトのスクリプトを微調整して動作させることができたので、必要に応じてカスタマイズしようとしています。これには、一連の値を変数に引き出すことが含まれます。
SSMS を「SQLCMD モード」に設定しましたが、1 つの例外を除いて、すべての変数が問題なく解析されます。
:setvar ReplicationDirectory 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2\MSSQL\repldata';
これは私にエラーを与えます:
致命的なスクリプト エラーが発生しました。:setvar の解析中に不正な構文が検出されました
問題を変数値にスペースが存在することに絞り込みました。私が読んでいることによると、これは問題なく動作するはずです。一重引用符を二重引用符 (通常の種類と斜めの種類の両方) に置き換えようとしましたが、すべて同じエラーが発生します。
スペース文字をエスケープする方法を教えてくれるウェブ上の情報が見つかりません。私が見たすべての記事では、文字列が引用符で囲まれている場合、SSMS は空白に関係なく、それらのペアの間にあるものを単一の文字列として解釈するだけであると述べています。
誰にもアイデアはありますか?
変数の値を次のように変更できると思います。
:setvar ReplicationDirectory 'C:\Progra~1\Micros~1\MSSQL10_50.SQL2\MSSQL\repldata';
しかし、「スペースを使用できない理由」を解決したいと思います。代わりに問題。
どうもありがとう。
トム