SQL ServerのGOコマンドとは?

SQL ServerのGOコマンド

SQL Serverには「GO」というコマンドがあります。他ではあまりみかけないこの独自コマンド「GO」を解説します。

GO コマンドが使用できるところ

GOコマンドはSQLコマンドのように見えますがSQLではありません。マイクロソフトが独自に拡張したTransact-SQLでもありません。

GOコマンドは下記3箇所で使えます。

  1. sqlcmd ユーティリティ
  2. osql ユーティリティ
  3. SQL Server Management Studio のコード エディター

GOコマンドはこの3つのツールで使えるツール用のコマンドです。

GO コマンドの使い方

ここでは、sqlcmdコマンドをDOSプロンプトを使って実行してみます。sqlcmdの使い方はこちらを参照してください。

-- Windows認証でServer1に接続します
sqlcmd -S server1 -E

-- USEを使ってデータベースを指定します 
>1 USE db1

-- sqlcmdで現在日付を取得します
>2 select getdate()
-- 実行します
>3 go
[結果]
2023-02-01-01:00:00 817

ここでは、SQL Serverに接続し、データベースを指定し、SELECTしました。SELECTした時点では値が返ってきません。

GO コマンドを実行すると、SELECTの結果が取得できます。このように、GO コマンドの時点までが実行されます。

GOを使うときは変数に注意する

注意点として、GOコマンドは前回のGOコマンドを実行した位置以降から有効となります。よって、変数を事前に定義しても前回のGOコマンド以降の行ではその変数は使えません。

GOコマンド以降にまた変数を定義する必要があります。変数は有効な場所でないと使えないためGOと変数の位置関係に注意が必要です。

参照:GO (TRANSACT-SQL) – Microsoft Docs

以上、SQL Serverの「GO」コマンドでした。

コメント