14

私は数時間前からこれに対する「決定的な」解決策を探していましたが、誰かが私に正しい方向を向けることができるように、問題が何であるかを正確に知ることはできません。Microsoftのデータベース公開ウィザードで生成されたスクリプトで「GO近くの不正な構文」エラーを修正するにはどうすればよいですか?

私は、リモートマシン上のデータベース(MDFファイルDB)用のスクリプトを作成し、それを使って同じデータベースをローカルに作成しようとしています。両方のマシンでVisual Studio 2010を使用しているので、スクリプトを生成するためにデータベース公開ウィザードを使用しました。

次に、Visual Studioで空のDBを別のMDFファイルDBに作成し、新しいクエリを作成するように選択しました。私はコピーされたスクリプトを貼り付けましたが、試してみると "間違った構文のGO"エラーが発生します。アラートのポップアップが画面の下部に表示されるため、合計でどれだけの数があるか分かりません。しかし、それはたくさんあるようです。

私はスクリプトの一番上を除くすべてを切り捨てましたが、それでも同じエラーが表示されます。これは次のようになります。

SET ANSI_NULLS ON 

GO 

これで、「間違った構文に近い」エラーが表示されます。

このツールで生成されるスクリプトに本質的に何か問題がありますか、それとも何か問題がありますか?

リモートDBは2008 R2であり、私のローカルは平易な2008年なので、なぜMDFファイルをコピーしないのですか?

誰もが提案があれば、大歓迎です。ドキュメントから

答えて

19

GOはのTransact-SQLステートメントではありません。 は、sqlcmd およびosqlユーティリティとSQL Server Management Studioコードエディタによって認識されるコマンドです。

このようなツールを使用してスクリプトを実行するか、GOコマンドを省略してください。

+4

ありがとうございました。私はおそらくそのようなものだろうと推測していたはずですが、私は、MicrosoftがSQLスクリプトとして実行できないプレーンテキストスクリプトを生成するツールを作成しないという考え方にこだわっていたと思います。ああ、マイクロソフト... –

+0

VS2010のデータベースプロジェクトは、バッチセパレータとして "GO"をサポートしています。それはオプションダイアログでさえあります。あなたが私に尋ねるならば、彼らにはかなりうんざりです。 – McGuireV10

+0

ここで私はGOキーワードのさまざまな使い方をよりよく理解するためのすばらしいアプローチを見つけました。私はそれを一見する価値があると思います:[GO with Fun](http://beyondrelational.com/modules/2/blogs/ 70/posts/10842/fun-with-go.aspx)。 –

8

私は最近同じ問題に遭遇し、それに対して正解を見つけました(私は思います)。

あなたが行の末尾にSQL Server Management Studioのコードエディタ以外のいくつかのランダムなエディタでクエリを作成する場合は、代わりにキャリッジリターン+ラインフィード(のキャリッジリターン(\ r)が文字を得ることができます\ r \ n)。また、行の最後にDELキーを押してからEnterキーを押しても変更されません。

CRLF(\ r \ n)にCR(\ r)を置き換えるには、メモ帳++を使用してください(\ r \ n)。

+0

+1。ワオ。私は30分間クエリに悩まされました。情報をありがとう! – gh9

関連する問題