2

DBに2つのテーブルしかないと言います。 2つのテーブルは、InputTypeとHardwareTypeです。各テーブルはGUIDを主キーとして使用します。 InputTypeからHardwareTypeへの外部キーがあります。SQL Server 2008でuniqueidentifierが重複することを許可していますか?

私が抱えている問題は、HardwareTypeの同じ行を参照するInputTypeの複数の行があることです(つまり、ハードウェアの種類ごとに複数の入力があります)。これの問題は、ハードウェアタイプのGUIDを参照するInputTypeの列が重複を許可しないため、ハードウェアタイプごとに複数の入力を許可しないことです。

InputTypeの列のデータ型を "varchar"などの "uniqueidentifier"ではなく何かに設定することで、この問題を回避できますか?プライマリキーではなく、別のテーブルへの外部キーである場合、GUIDの重複エントリを許可するにはどうすればよいですか?

ご協力いただき誠にありがとうございます。ありがとう。

+0

いいえ、「uniqueidentifier」の性質は重複したエントリを許可しないことです。ユニークでない場合は、ユニークであるとマークしないでください。 – Femi

+0

データ型が「UNIQUEIDENTIFIER」なので、そこに同じ値を複数回持つことはできません!あなた** ** **もちろん、その列に「UNIQUE CONSTRAINT」または「UNIQUE INDEX」を明示的に追加していない限り、 –

+1

パーフェクトです。それが私が聞きたかったものです。 「インデックス/キー」セクションに「ユニーク」フラグが見つかりました。私は必要なようにuniqueidentifierフィールドに重複を入力できます。ありがとう@marc_s! – ImGreg

答えて

5

ちょうどデータ型がUNIQUEIDENTIFIERであるということは、その列に同じ値を複数回持てないことを意味しません!

あなたは実際にCAN - コースの場合を除き、明示的にその列にUNIQUE CONSTRAINTまたはUNIQUE INDEXを追加しました - これはあなたの選択ですが、あなたはそれについて自分で何かをしない限り、デフォルトで適用されるものは、ありません。 InputTypeの複数の行がHardwareTypeで同じ行を参照していないだろうしても - - 何の問題もまったく

だから、UNIQUEIDENTIFIER使用InputTypeからHardwareTypeを参照することができるはずです。

+1

guidをキーとして使用することに関するさらに詳しいアドバイスについては、同様の質問の@marc_sポストも読んでください。http://stackoverflow.com/questions/2996031/guid-primary-foreign-key-dilemma-sql-server – RThomas

+1

これは役に立ちました同じように。みんな、ありがとう! – ImGreg

関連する問題