SQL Server Management Studioで次のような簡単なクエリを実行しようとしています。
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
left join
master.sys.parameters as params on procs.object_id = params.object_id
これは全く正しいと思われますが、次のようなエラーが発生します。
Msg 102, レベル 15, 状態 1, 行 6 ''付近の構文が正しくありません。
結合を外して単純なselectだけを行うとうまくいきます。
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
しかし、動作させるには結合が必要です。このクエリには ''という文字列もないので、何が気に入らないのかがわかりません。
このような予期せぬ問題は、Webページや電子メールからコードをコピーしたときに、テキストに個々のCRやLF、ノンブレイキングスペースなどの印刷不可能な文字が含まれている場合に現れます。
Panagiotis Kanavosさんのおっしゃるとおり、T-SQLをコピー&ペーストすると、不要な文字が表示されることがあります。
私はついに、文全体を手動で書き直すことなく、どの文字が間違っているかを検出するための簡単で迅速な方法を見つけました(Notepad++だけが必要)。
ファイルをディスクに保存する必要はありません。Notepad++で簡単にできます。
簡単に間違った文字が見つかるはずです。