一意性(UNIQUE)制約はNULLでない値に対してだけ効く、そう思っていた頃が私にもありました… SQL ServerはNULLも一意性制約の対象になります。NULLになっている行が複数あると重複だと判定されます。SQL-92の規格書をあたってみると、これは完全な規格違反なんですけどね。 A unique constraint is satisfied if and only if no two rows in a table have the same non-null values in the unique columns. http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt つまりSQL Serverじゃ以前解説した 有効なレコードだけに一意性制約をかける が使えないってことです。 でも大丈夫。 SQL Server