SQL Developer(SqlDev)(Oracleツール)ではほとんどの場合 ';'を使用します。バッチの終わりを示す。代わりに ';' SQL Server Management Studio(SMSS)でバッチの終了を示す方法
また、 ';'その中にたくさんのバッチがある大きなスクリプトがあるとき。たとえば、最初のバッチがテーブルを作成し、2番目のテーブルがそのテーブルにデータを挿入し、3番目のテーブルが作成されたテーブルと別のテーブルなどと結合します。
SqlDevでは、スクリプトそれ)うまく動作します。しかし、正確なスクリプトをSQL Server Management Studio(SMSS)にコピーして実行したときに、作成されたテーブルが結合されている第3バッチのテーブルが存在しないというエラーが発生しました。
スクリプトを実行しなくても、SMSをSMSで実行させるにはどうすればよいですか?
スクリプトを順番に実行する場合と並行して実行する場合は、スコープとコンパイルを行う必要があります。 OPsスクリプトは、スクリプトが開始する前にスクリプト内で参照されているテーブルが存在しないため、コンパイル時に失敗しています。 GO文を使用すると、複数のバッチのスクリプト内の各バッチのスコープが区切られます。それぞれのバッチは、先行するすべてのバッチが完了した後にのみコンパイルされます。逆に、 ';'シンボルはバッチ内の個々のステートメント間の区切り文字にすぎません。 – MatBailie