2016-05-23 5 views
-2

私のテーブルにユニークな行を持たせたいが、ユニークな列は必要ない。それはオプションですか?私は同じ列の複数の行に同じ値を持たせたいが、別の行を100%コピーするのではない。一意の行を持つSQL SERVERテーブルを作成する方法はありますか?

this質問がありましたが、それはMySQLに関するもので、SQL SERVER 。

conversation_id | staffer_id | handled 

ありがとう:

私の特定のテーブル(会話-職員)がこれです。あなたは主キーとしてすべての列を設定することができ、また

CREATE UNIQUE INDEX <index name> ON <tablename>(<columns>); 

+0

@Downvoter - 質問に間違いがありますか? – Sipo

+1

私は推測しているだけですが、あなたの質問には情報、テーブル構造、データサンプル、望ましい出力が欠けています。 – sagi

+0

@サギ、ちょうど私ですか?あなたはヘブライ語で話していますか? –

答えて

3

あなたは、テーブルのすべての列が含まれて一意のインデックスを追加することができます。しかし、テーブルがすでにある場合は、最初にPKを削除する必要があります。

ALTER TABLE <tablename> DROP CONSTRAINT <constraint_name>;  
ALTER TABLE <tablename> ADD PRIMARY KEY (<columns>); 
+0

私はいくつかの列のような異なる行にすることができますか? – Sipo

+0

すべての列をユニーク索引またはPKに入れると、すべての列で同じデータを持つ行を持つことはできません。列の中に類似したデータを持つことができるものがある場合は、それらをインデックスの列リストで除外します。 –

+3

*すべての*列を含む 'ユニークインデックス 'を追加すると、行の値の各ユニークな組み合わせ*は一度しか格納できませんが、個々の列または列のサブセットの中に重複する可能性があります。 –

関連する問題