14

私はこれに対する「決定的な」解決策を数時間探していましたが、問題が何であるかを正確に知ることができないので、誰かが私を正しい方向に向けることができることを願っています.

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

次に、Visual Studio でローカルに空の DB (別の MDF ファイル DB) を作成し、新しいクエリを作成することを選択しました。コピーしたスクリプトを貼り付けましたが、実行しようとすると、「GO 付近の構文が正しくありません」というエラーが何十回も発生します。アラートのポップアップが画面の下部から消えるため、合計で何件あるかわかりません。多いようにも思えますが。

スクリプトの一番上以外をすべて削除しましたが、それでも同じエラーが発生します。次のようになります。

SET ANSI_NULLS ON

GO

これでも「GO付近の構文が正しくありません」というエラーが表示されます。

このツールが生成するスクリプトに本質的な問題があるのでしょうか、それとも私が何か問題を起こしているのでしょうか?

リモート DB は 2008 R2 で、私のローカルは単純な 2008 です。そのため、MDF ファイルを単にコピーしないのはなぜですか。

誰か提案があれば、大歓迎です。

4

2 に答える 2

19

ドキュメントから:

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

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

于 2010-11-21T14:06:58.507 に答える
8

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

行末に SQL Server Management Studio Code エディター以外のランダム エディターでクエリを作成すると、 CARRIAGE RETURN + LINE FEED (\r\n)ではなく、 CARRIAGE RETURN (\r)文字が表示される場合があります。また、行末で DEL キーを押してから Enter を押しても変化しません。

Notepad++ を使用して、CR (\r) を CRLF (\r\n) に置き換えます。順序を守ることは重要です。

于 2012-10-30T21:06:49.573 に答える