SQL Server Management Studio¶
はじめに¶
SQL Server Management Studio (略称 SSMS)は、SQL Serverのデータベースを管理するツールです。
データベース領域、テーブルの管理、データのインポート・エクスポート、ユーザーと権限の管理、などなどを行います。
使い方¶
データベースの作成¶
- 左側ペインで[データベース]を選択、右クリックし、[新しいデータベース]をクリック
- 「新しいデータベース」画面でデータベース名に作成したいデータベース名を入力
- 同画面で、必要に応じて[初期サイズ]、[自動拡張/最大サイズ]、[パス]を変更
- 同画面の左側ペインで[オプション]を選択、必要に応じて[照合順序]、他を変更
照合順序は、char、varcharに格納する文字コードと文字コード変換を規定します。
データのインポート¶
Excelからデータをインポート¶
- 左側ペインで対象データベースを右クリックし、[タスク] > [データのインポート]をクリック
- 「SQL Serverインポートおよびエクスポートウィザード」画面が開く
- データソースの選択で、[Microsoft Excel]を選択し、ExcelファイルパスにExcelファイルのある場所を指定
- 変換先の選択で、[SQL Server Native Client 11.0]を選択
- [1つ以上のテーブルまたはビューからデータをコピーする]を選択
- コピー元のテーブルおよびビューを選択で、変換元列でExcelシート名にチェック、変換先列には既にテーブルが存在すればそれを指定、テーブルがなければテーブル名を入力する(デフォルトで生成されるテーブル名はExcelシート名と同じで末尾に$が付くので削除する等)
- [マッピングの編集]ボタンをクリックし、Excelシート側でid列を用意していれば、[ID挿入を許可する]にチェック
データの編集¶
SSMS画面上でデータを編集¶
左側ペインでテーブルを選択、右クリックで[上位200行の編集]を実行すると、右側ペインに200行までのデータレコードが表示されます。
テーブルの作成¶
外部キー(リレーション)¶
- テーブルのデザインで、外部キーを収容する列を右クリックし、ポップアップメニューから[リレーションシップ]を選択
- 「外部キー リレーションシップ」画面で[追加]ボタンを押す。自動で制約名 FK_テーブル名_XXX が生成
- [テーブルと列の指定]欄をクリックすると右端に[...]ボタンが表示されるので、クリックする
- 「テーブルと列」画面で、主キーテーブルに外部キーが参照するテーブルを選択
- その下の空欄(2列)の左側をクリックするとドロップダウンリストとなるので、外部キーが参照するテーブルのユニーク列(通常は主キーの列)を選択
- 右側をクリックしドロップダウンリストから外部キーを収容する列を選択
テーブルの諸情報¶
自動採番(IDENTITY)¶
現在の採番値を確認するには、クエリーで、SELECT IDENT_CURRENT('テーブル名')
を実行します。
現在の採番値を変更するには、クエリーで、DBCC CHECKIDENT(テーブル名, RESEED, 値)
を実行します。
トラブルシュート¶
テーブルの定義¶
列の型を変更しテーブルを保存したら「変更の保存が許可されていません。」エラー¶
[ツール]メニュー > [オプション] で、左側ペインで[デザイナー]選択、右側ペインのテーブルオプション項で、[テーブルの再作成を必要とする変更を保存できないようにする]のチェックを外す。
クエリの実行¶
しばらくするとクエリのテーブル名が赤い波線表示となり「オブジェクト名〇〇が無効です」エラー¶
SSMSを開いて作業を続けていると(スリープ等が途中に入った時?)、今まで実行できていたクエリの表示でテーブル名に赤い波線表示が付いて、クエリーを実行すると、「オブジェクト名 MyTable が無効です。」といったエラーになることがあります。
- 時間経過によって、データベースへ再接続が発生した後かも
アクセスするデータベースをSSMSが失ってしまうようです。
対処としては、いったんクエリー対象のデータベースを左側ペインで選択、右クリックして新しいクエリーでクエリー画面を開き、再度クエリーを入れて実行します。