2009年12月20日日曜日

[SQLServer]基礎強化メモ - データ整合性

制約や参照整合性についてのメモ。
FOREIGN KEY制約がOracleと大きく違うような気がする。
(FOREIGN KEY制約とCHECK制約は業務で使った事ない・・・)

・PRIMARY KEY
 内部インデックスが作成される。
 NULLは許可しない。
・FOREIGN KEY
 参照キー変更時の挙動をREFERENCES句で設定できる。
  削除/更新時(ON DELETE / ON UPDATE)
  →何もしない/外部キー変更/NULL設定/デフォルト値設定
   (NO ACTION / CASCADE / SET NULL / SET DEFAULT)
 
・UNIQUE制約
 内部インデックスが作成される。
 NULLは1件のみ許可する。
 VARCHAR(MAX)とスパース列には設定できない。
・NOT NULL
・DEFAULT
・CHECK
 固定値以外に、同一テーブルの別の列値に制限することもできる(組織マスタ等の自己参照テーブルなどで使用)

0 件のコメント: