これらは厳密には必須ではありません。SQLServerManagementStudioがこの時点までのステートメントを実行し、続行するための単なる指示です。 GO
ない T-SQLキーワードなど-SSMSで機能する単なる命令です。
場合によっては、GOが必要になります-例:テーブルに列を追加してから再度選択する場合は、列の追加とクエリの間にGOが必要です。
例えば。これを実行しようとすると、SSMSからエラーが発生します:
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
結果:
重要なのは、SSMSはステートメント全体を一度に検証しようとしているのですが、SELECTステートメントでは、DateTimeStamp
がないことについて文句を言うでしょう。 列。
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
GO
を入れた場合 SSMSはステートメント全体を事前に解析および検証しないため、2つのステートメント間で機能します。最初の部分を実行し、次に2番目の部分のみを解析します(GO
の後)。 。
しかし、このような状況を除いて、GOはほとんど必要ありません。