SQLサーバーで2つの主キーを設定するには
SQL Serverでは、1つのテーブルに主キーを設定することは1つしかできません。ただし、複数の列を使用して複合主キーを作成できます。これにより、複数の列にわたる一意性の要件を満たすことができます。SQL Serverで複合主キーを設定する手順を以下に示します。1. テーブルを作成するときに、複数の列を主キーとして定義します。
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
列3 数据类型,
PRIMARY KEY (列1, 列2) )
テーブルが存在する場合、ALTER TABLE文を使用して、主キーを追加することができます。
ALTER TABLE 表名 ADD PRIMARY KEY (列1, 列2)
複合キーを設定する場合、主キーを構成する列の値は一意で空でない必要があります。また、複数の主キーの効果をエミュレートするために一意制約を使用することもできます。一意制約は列の値が一意であることを保証しますが、自動でクラスター化インデックスを作成するわけではありません。
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
列3 数据类型,
CONSTRAINT 约束名 UNIQUE (列1, 列2) )
または、ALTER TABLE ステートメントを使用して、一意制約を追加できます。
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (列1, 列2)
唯一制約を複数の列に設定することで、複数の主キーを設定するのと同じ結果となります。