GO

SQL Server Advent Calendar 2日目 です。

Go言語ではなく、GO (Transact-SQL) です。

GO はバッチの区切りを示します。 どうも T-SQL というよりは、クライアントツール依存のコマンドのようです。sqlcmd や SSMS(SQL Server Management Studio) 等からステートメントを送信する単位(バッチ)を区切るための物です。

バッチは、SQLのコンパイルや実行の単位を区切るため、

select getdate() -- 実行されない
select * fro Table1 -- 構文エラー
go
select getdate() -- 実行される

2番目の select getdate() は実行されます。

また GO の後に数字を指定すると、そのバッチを指定した回数分繰り返します。

select getdate()
select getdate()
go 3