SqlServerにおけるGOキーワードの理解

831 ワード

sqlServerでのGOキーワードの役割は何ですか?
 
  • 作用
  • GOキーワードを使用してバッチを分割します.各GOで区切られた文は個別のトランザクションであり、1つの文の実行に失敗しても他の文の実行には影響しません.
    例:
    /** Not use 'GO' to split **/
    SELECT * FROM sysobjects WHERE kk = 'a';
    SELECT GETDATE();

    テーブルsysobjectsにはkkというフィールドがなく、GOキーを使用して2つのsql文を区切っていないため、クエリはレコードを返しません.
     
    /** use 'GO' to split **/
    SELECT * FROM sysobjects WHERE kk = 'a';
    GO
    SELECT GETDATE();

    この2つのsql文をGOで区切ると、GO以上のsql文が間違っていても、GOの下のsql文は通常通り実行されます.
     
  • 使用シーン
  • ビューの作成(create view)など、最初の行にのみ実行できる文があるので、create viewの前にGOを付けることができます.
    例:
    CREATE VIEW kk_view AS SELECT GETDATE() date;
    GO
    CREATE VIEW kk1_view AS SELECT GETDATE() date;

    GOを削除するとビューの作成に失敗します.