SQL Server/Azure SQL Database には数多くのデータベースオブジェクトが格納されていますが、
SI Object BrowserではそのほとんどをGUIによって視覚的に捕らえる事ができます。

ここでは各オブジェクトタイプ別に表示されるウィンドウの説明を行いますが、
その前に全ウィンドウの上段に表示される共通ツールボタンについて解説します。
[作成(C)] [定義情報]タブ、または[ソース]タブに設定された情報を元に
オブジェクトを作成または変更します。
設定が変更されていない場合や[データ]タブを開いている時は
使用できません。
[戻す(R)] 最新のデータベース定義を読み直します。
[終了(X)] この画面を閉じます。
[データ生成ツール] データ生成ツールを表示します。
(このボタンはテーブル、ビュー画面のみあります。)
→ 3−16参照
[スクリプト印刷] スクリプトを印刷します。
[Excel出力] オブジェクトの定義情報をEXCELファイルに出力します。
→ 3−4−3参照
[サンプル] サンプルコードを表示します。
(このボタンは各プログラム画面にのみあります。)

 4 - 1 テーブル



[定義情報]タブ
 上段にはテーブルのコメントと、項目情報として項目名、型、全体桁数(,小数部桁数)、NULL可否、
 省略時値、照合順序、項目のコメントが表示され、それぞれの情報を修正する事ができます。
 ※Azure SQL Database上のテーブルに対しては、コメントを指定することができません。
 
 一番下までカーソルを移動すると、一番下に項目を追加できますが、
 [挿入]ボタン、[削除]ボタンで、項目情報の挿入、削除を行う事もできます。
 
 [上へ移動]ボタン、[下へ移動]ボタンで、選択中のテーブル項目を上下に移動できます。
 
 
 下段にはこのテーブルに従属する制約、索引、トリガーが一覧表示されます。
 ここで右クリックによるポップアップメニューを開くと、
 新規作成、選択したオブジェクトの修正、削除、有効/無効の切り替えを行う事ができます。

[CONSTRAINT(制約)] テーブルに従属する制約の名前、制約のタイプ
(CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY,DEFAULT)、
制約の内容、状態を表示します。
→ 4−8参照
[INDEX(索引)] テーブルに従属する索引の名前、重複の有無、索引項目、
状態を表示します。
→ 4−2参照
[TRIGGER(トリガー)] テーブルに従属するトリガーの名前と状態を表示します。
→ 4−5参照

この画面で[作成]ボタンを押した場合、修正した情報によりSI Object Browserは
ALTER TABLE文によって定義を変更しますが、項目の最終行以外の挿入、削除など、
ALTER TABLE文では変更できない情報がある場合にはCREATE TABLE文を使用します。
この場合は再作成となる為、データ等は全て削除されます。




[ソース]タブ
 テーブルを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、テーブルオブジェクトを
 変更する事ができます。

 この画面で[作成]ボタンを押した場合はCREATE TABLE文を使用しますので、
 データ等は全て削除されます。




[データ]タブ
 テーブルに保有されているデータを修正する事ができます。

 修正したデータは行移動時に自動的にCOMMITされますが、オプション設定により
 COMMIT/ROLLBACKを任意のタイミングで行うようにする事もできます。

 画面上段にある[条件]テキストボックスはデータの抽出条件を記述する事ができます。
 また、その下に表示されている項目一覧の[下限値]、[上限値]に値を指定する事でも
 データを絞り込む事が可能です。
 (それぞれの抽出条件は AND で結ばれます)
 
 テンポラルテーブルの場合は、[表示データ]にて参照するデータを選択します。
 履歴を選択した場合は、参照する履歴データの期間を指定することが可能です。
 ※対象テーブルがテンポラルテーブルの場合のみ表示されます。
表示データ [現行]または[履歴]を選択します。
・[現行] : 現行テーブルからデータを参照する。(通常と同様)
・[履歴] : 現行テーブルに加え、履歴テーブルからもデータを参照する。
履歴の表示方法 データを参照する方法を選択します。
選択した内容は[FOR SYSTEM_TIME] 句を使用してデータを参照します。
・[AS OF] : 期間指定時点のデータを返します。
・[FROM TO] : 期間指定の範囲内に存在したデータを返す。
・[BETWEEN AND] : 期間指定の範囲内に存在したデータを返す。(上限含む)
・[CONTAINED IN] : 期間指定の範囲内に更新があったデータを返す。
・[ALL] : 現行および履歴テーブルに属する全てのデータを返す。
期間指定 履歴の表示方法で指定した方法に必要な日時を指定します。

 項目一覧の一番右端にあるソート順序には、1を指定した項目順にデータをソートします。
 複数項目でソートする場合は1、2、・・・というように連番で指定して下さい。
 また DESCと指定すると降順ソートも可能です。

 データ表示部の行ヘッダの部分(現在位置にが表示される部分)をクリックすると
 行全体を選択できます。
 この状態でコピー&ペーストを行うとデータを簡単に増やす事できます。
 (一意制約がある場合はコピーした値を一度メモ帳等で編集し、その値をペーストして下さい)

画面左側にあるツールボタンはそれぞれ次の機能があります。

[データを表示] 入力した抽出条件やソート順序を元にデータを再表示します。
[表示項目の設定] 表示する項目を選択する画面を表示します。
[抽出条件・ソート順] 抽出条件とソート順を入力する表部分を表示・非表示します。
オプション設定により初期状態の設定も可能です。
[抽出条件ソート
  順設定クリア]
抽出条件とソート順に入力された値をすべて削除します。
[結果を編集可能にする] 表示されたデータが編集可能か否かを指定します。
編集が必要ない場合はこのボタンを OFF にすると
反応が良くなります。
オプション設定により初期状態の設定も可能です。
[出力方向変更] データを横方向または縦方向に表示します。
[結果をEXCELファイルに
  出力する]
表示されているデータの全てをEXCELファイルに出力します。
オプション設定により出力方法の変更が可能です。
[結果のINSERT文を
  出力する]
表示されているデータの全てをINSERT文として、
ファイルに出力します。
[結果をクリップボードに
  出力する]
表示されているデータの全てをクリップボードに出力します。
オプション設定により出力方法の変更が可能です。
[レコードの挿入] データを挿入する為の空白行を作成します。
[レコードの削除] 現在位置のレコードを削除します。


[領域情報]タブ
 テーブルデータの格納方法を指定します。
 領域情報は、格納方法毎に設定内容が異なります。格納方法別の詳細は以下の通りです。
 ※Azure SQL Databaseに接続している場合、このタブは非表示となります。

1.標準
 最も一般的な格納方法です。属するファイルグループを指定します。




2.一時表
 テーブルデータを永続的に保持せず、トランザクション終了時に破棄します。
 一連のトランザクション処理中に使用する中間ワークのような、
 処理終了後にはデータが必要なくなるようなケースで使用します。




3.パーティション
 複数のファイルグループにデータを振り分けて格納する方法です。
 パーティションを使用する場合はあらかじめデータを振り分けるための
 パーティション関数が作成されている必要があります。






[権限]タブ
 テーブルオブジェクトに対するオブジェクト権限が表示されます。
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中断の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで
 オブジェクト権限の付与・取消し作業を行う事ができます。

表示対象 画面下段のユーザー一覧に表示するユーザー及び
ロールの対象を指定します。
[権限付与済みのユーザーのみ表示]を選択した場合は、
このオブジェクトに対するオブジェクト権限を持つ
ユーザー及びロールのみ表示します。主に権限の確認・取消用です。
[全てのユーザーを表示]を選択した場合は、データベース中の
全ユーザー及びロールを表示します。主に権限の登録用です。
選択したユーザーの
許可/許可の付与/拒否
画面下段のユーザー一覧で選択したユーザーに対して、どの権限を
付与・取消するかを、左側のチェックボックスのオン/オフで指定します。
「許可の付与」はGRANT OPTION を付与するか否かの指定となります。
ユーザー一覧 ユーザー及びロールの名前と、権限の保持状態が一覧表示されます。




[依存関係]タブ
 テーブルオブジェクトと他オブジェクトとの関連性が表示されます。
 依存関係情報は、デフォルトでは3階層までの階層表示を行いますが、
 オプション設定を変更する事で、更に深い階層の表示も可能になります。

表示対象オブジェクト 表示対象となるオブジェクトの種類を指定します。
別DBのオブジェクトを対象にする 同インスタンスに紐付くデータベース間での依存関係を参照できるよう、
対象データベースを選択します。
参照リスト このオブジェクトが使用しているオブジェクトを、階層表示します。
ポップアップメニューより、選択中のオブジェクトの定義画面を開いたり、
ノードの操作が行えます。
被参照リスト このオブジェクトを呼び出しているオブジェクトを、階層表示します。
ポップアップメニューより、選択中のオブジェクトの定義画面を開いたり、
ノードの操作が行えます。




[テンポラル]タブ
 テーブルオブジェクトのテンポラル設定情報が表示されます。
 テンポラル設定情報を入力することで、テーブルオブジェクトをテンポラルテーブルとして作成することができます。

※Azure SQL Database、SQL Server 2014以前に接続している場合、このタブは非表示となります。
履歴テーブルの場合も同様に、テンポラルテーブルとして作成できないため非表示となります。

テンポラルテーブルとして作成 テンポラルテーブルとして作成するかどうかを指定します。
チェックすると[履歴テーブルの指定][期間開始列の指定][期間終了列の指定]を入力することができます。
履歴テーブルの
指定
履歴テーブルとして使用するテーブルを指定します。
[作成時に履歴テーブルのデータと整合性チェックを行う]にチェックすると、このオブジェクトと指定した履歴テーブルで整合性チェックを行います。
期間開始列/
期間終了列の
指定
期間開始列/期間終了列を指定します。
期間開始列/期間終了列として指定する列は、予め定義情報タブで設定しておく必要があります。
[隠し項目]にチェックすると、HIDDEN属性で設定することができます。

 4 - 2 インデックス

インデックス(索引)オブジェクトの定義情報・ソースの表示及び保守を行う画面です。



[定義情報]タブ
 インデックスオブジェクトについての情報が表示されます。
 この情報を修正し、[作成]ボタンを押すと、インデックスを更新することができます。

テーブル インデックスの対象となるテーブルと、テーブルのスキーマを指定します。
クラスタ クラスタインデックスを作成する場合は、ここをチェックします。
クラスタインデックスではBツリー構造によりデータアクセス速度を
向上させることができます。
クラスタインデックスは1つのテーブルにつき、1つしか作成できません。
カラムストア ※SQL Server 2012以上の場合に使用可能です。
カラムストアインデックスを作成する場合は、ここをチェックします。
カラムストアインデックスでは各列に対応するデータをグループ化して
格納することにより、データウェアハウスクエリのパフォーマンスを
向上することができます。
カラムストアインデックスを持つテーブルのデータを編集することはできません。
一意 重複不可インデックスを作成する場合は、ここをチェックします。
有効 インデックスを有効にしたい場合はここをチェックします。
チェックがOFFの場合はSQLにて使用されないインデックスとなります。
インデックスを削除するのではなく、一時的に無効にしたい場合などに
OFFにします。
付加列 付加列インデックスを指定したい場合は、ここをチェックします。
チェックをONにすると、インデックス列情報の下側に付加列を指定するリストが表示されます。
FillFactorを
設定する
インデックスの空き領域を設定します。
空き領域を設定することにより、将来テーブルデータの
領域が拡張した場合のページ分割を減少することができます。
0〜100の間でパーセント指定します。
インデックス列情報 画面左側には、インデックスに所属している列が、
右側には未所属の列一覧表示されます。
中央にあるボタンを使ってテーブル列をインデックスに加えるか否かを
切り替える事ができます。
付加列情報 画面左側には、インデックスに所属している列が、右側には未所属の列一覧表示されます。
中央にあるボタンを使ってテーブル列をインデックスの付加列として加えるか否かを切り替える事ができます。




[ソース]タブ
 インデックスを作成した際のSQL文が表示されます。
 オプションの定義情報タブにて、、[SQL文に領域情報を含める]がチェックされた状態であれば、
 ファイルグループ情報も付加されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 インデックスオブジェクトを変更する事ができます。




[領域情報]タブ
 インデックスデータの格納方法を指定します。
 ※Azure SQL Databaseに接続している場合、このタブは非表示となります。

標準 最も一般的な格納方法です。
属するファイルグループを指定します。
パーティション 複数のファイルグループにデータを振り分けて格納する方法です。
パーティションを使用する場合はあらかじめデータを振り分けるための
パーティション関数が作成されている必要があります。

 4 - 3 ビュー



[定義情報]タブ
 ビューのコメントと、項目情報として項目名、型、全体桁数(,小数部桁数)、NULL可否、
 省略時値、項目のコメントが表示されます。
 テーブル情報とは違い、この画面ではコメント以外の定義を修正する事はできません。

コメント ビューのコメントを指定します。
項目情報 項目名、型、全体桁数(,小数部桁数)、NULL可否、省略時値、項目の
コメントが表示されます。
ここではコメントのみ編集可能です。
※Azure SQL Database上のビューに対しては、コメントを指定することができません。




[ソース]タブ
 ビューを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 ビューオブジェクトを再作成する事ができます。




[データ]タブ
 ビューから参照可能なデータを表示します。更新可能であればデータを修正する事もできます。
 修正したデータは行移動時に自動的にCOMMITされますが、オプション設定により
 COMMIT/ROLLBACKを任意のタイミングで行うようにする事もできます。

 画面上段にある[条件]テキストボックスはデータの抽出条件を記述する事ができます。
 [表示件数]テキストボックスは表示するデータの件数を指定することができます。
 また、その下に表示されている項目一覧の[=(一致)]、[<>(不一致)]、[≦(下限値)]、[≧(上限値)]、[LINK(部分一致)]に
 値を指定する事でもデータを絞り込む事が可能です(それぞれの抽出条件はAND で結ばれます)。
 項目一覧の一番右端にあるソート順序には、1を指定した項目順にデータをソートします。
 複数項目でソートする場合は1、2、・・・というように連番で指定して下さい。
 またDESCと指定すると降順ソートも可能です。
 [’’(空)にNULLを含める]にチェックを入れた場合、NULL値のデータを結果に含めることができます。
 [表示件数]は入力した数値件数分の結果を返すように指定することができます。

 データ表示部の行ヘッダの部分(現在位置にが表示される部分)をクリックすると、
 行全体を選択できます。
 この状態でコピー&ペーストを行うとデータを簡単に増やす事できます。
 (一意制約がある場合はコピーした値を一度メモ帳等で編集し、その値をペーストして下さい)

詳しくは4−1[データ]タブの説明を参照して下さい。




[実行計画]タブ
 ビューを実行した際に発生した I/O の統計情報や、実行計画を表示します。
 コストベースの場合は実行コストの確認も可能です。

4−1[データ]タブ3−5[実行計画]タブも合わせて参照して下さい。




[権限]タブ
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中段の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで、
 オブジェクト権限の付与・取消し作業を行う事ができます。

3−4−6[権限付与]も合わせて参照して下さい。




[依存関係]タブ
 テーブルオブジェクトと他オブジェクトとの関連性が表示されます。
 依存関係情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。

 4 - 4 ストアドプログラム

ストアドプログラムのソース表示及び保守を行う画面です。



[ソース]タブ
 オブジェクトを作成した際のSQL文が表示されます。
 SQL文を編集し、上段にある[作成]ボタンを押すと、オブジェクトを作成・変更する事ができます。
 ストアドプログラムのコンパイルでエラーが発生した場合、
 エディタの下にエラー内容の一覧が表示されます。

 また、[サンプル]ボタンを押すと、サンプルコードを参照することも出来ます。
 サンプルコードを参照することで、基本的な構文を確認することができます。




[権限]タブ
 ストアドプログラムに対するオブジェクト権限が表示されます。
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中段の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで、
 オブジェクト権限の付与・取消し作業を行う事ができます。

3−4−6[権限付与]も合わせて参照して下さい。




[依存関係]タブ
 ストアドプログラムと他オブジェクトとの関連性が表示されます。
 依存関係情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。

 4 - 5 データベーストリガー



[ソース]タブ
 トリガーオブジェクトを作成した際のSQL文が表示されます。
 SQL文を編集し、上段にある[作成]ボタンを押すと、オブジェクトを変更する事ができます。




[依存関係]タブ
 トリガーオブジェクトと他オブジェクトとの関連性が表示されます。
 相関情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。

 4 - 6 シーケンス

※SQL Server 2012 以上で対応しています。



[定義情報]タブ
 シーケンスの現在値や初期設定を表示します。
 [加算]ボタンを押すと、NEXT VALUEを取得します。
 また、情報を修正し[作成]ボタンを押すと、シーケンスオブジェクトを再作成します。




[ソース]タブ
 シーケンスを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 シーケンスオブジェクトを再作成します。




[権限]タブ
 シーケンスに対するオブジェクト権限が表示されます。
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中段の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで、
 オブジェクト権限の付与・取消し作業を行う事ができます。




[依存関係]タブ
 シーケンスオブジェクトと他オブジェクトとの関連性が表示されます。
 依存関係情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。

 4 - 7 シノニム

※SQL Server 2005 以上で対応しています。



[定義情報]タブ
 リンク元のオブジェクトの情報を表示します。

 [参照]ボタンを押すと、リンク元オブジェクトの定義情報ウィンドウを開きます。
 また、情報を修正し[作成]ボタンを押すと、シノニムを再作成します。




[ソース]タブ
 シノニムを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 シノニムオブジェクトを変更する事ができます。




[権限]タブ
 シノニムに対するオブジェクト権限が表示されます。
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中段の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで、
 オブジェクト権限の付与・取消し作業を行う事ができます。

 4 - 8 制約

画面上段に制約を作成するテーブル名とスキーマ、制約の種類、有効/無効を設定します。
画面下段は制約の種類に応じて変化します。



[PRIMARY KEY]制約
 画面下段の右側には元テーブルの項目が一覧表示されます。
 画面中央にある[][][][]ボタンで重複不可となる項目を設定します。
 (主キー項目は必ず重複不可になります)




[UNIQUE KEY]制約
 画面下段の右側には元テーブルの項目が一覧表示されます。
 画面中央にある[][][][]ボタンで重複不可となる項目を設定します。


[領域情報]タブ
 インデックスデータの格納方法を指定します。
 ※Azure SQL Databaseに接続している場合、このタブは非表示となります。

標準 最も一般的な格納方法です。
属するファイルグループを指定します。
パーティション 複数のファイルグループにデータを振り分けて格納する方法です。
パーティションを使用する場合はあらかじめデータを振り分けるための
パーティション関数が作成されている必要があります。




[CHECK]制約
 画面下段はチェック条件を入力します。




[FOREIGN KEY]制約
 画面中段では参照整合性の対象となるテーブル名及びスキーマ、
 そのテーブルのインデックスを設定します。
 画面下段のグリッド項目に上記で設定したインデックスの項目一覧が表示されますので、
 対応するテーブル項目を設定します。




[DEFAULT]制約
 画面中段に対象となるテーブル列を設定します。
 画面下段にデフォルト値を入力します。