2017-03-23 5 views

答えて

1

GOはT-SQLステートメントではありません。 GOは、スクリプト内の文のブロックの終わりを示すために使用されるSQL Serverツールおよびユーティリティによって使用されるバッチ区切り文字です。スクリプト内でGOが検出されると、ツールは実行のためにSQL Serverに単一のバッチとして前の文ブロックを送信します。

セミコロンは、SQLステートメントの終了を示すために使用されるANSI標準のステートメントターミネーター言語要素です。これらのターミネータは解析を容易にします。ほとんどの場合、T-SQLではセミコロンを省略することができますが、共通テーブル式(WITHで導入されています)など、次のステートメントが新しいキーワードの場合は、ステートメントターミネータが必要です。ターミネータを省略することは、今日では廃止され、下位互換性のために提供されています。

+0

スクリプトは( 'go'と ';'によって)分割され、SQL Serverに送信して1つずつ実行します。 – Xin

+0

@ Xin。正しい。 SQL Serverは個々のバッチのみを表示します( 'GO'ターミネータなし)。 –

+0

if 'statement1;文2;文3文4文5 'を実行すると、サーバはexec [1 + 2 + 3 + 4]と[5]を実行します。または[1] [2] [3] [4,5]?ありがとう – Xin

1

;ステートメントを終了します。 GOは一連のステートメントを終了します。 ;明示的な使用が必要なMERGEのような特定のステートメントを実行しない限り、実際には必要ありません。

関連する問題