2012-03-12 8 views
0

にチェック:データは、私は次のサンプルデータを使用してデータを持っているSQL挿入

ID CID  Name   ImageLocation       Order 
1 1 Suit Jacket Content/Berwin/Content/Images/SuitJacket.jpg 1 
2 1 Trousers Content/Berwin/Content/Images/Trousers.jpg  2 
4 2 Jumper  Content/Berwin/Content/Images/Jumper.jpg  1 
5 3 Trousers Content/Berwin/Content/Images/Trousers.jpg  1 
6 4 Suit Jacket Content/Berwin/Content/Images/SuitJacket.jpg 1 

IDは、PK、CIDでFKと順序がないためにFK

に示すことにするためです

Order列内の番号がCIDの範囲内で一意であることを強制する必要はありますか。私。 の場合、私は1 or 2を挿入できませんか?

答えて

3

はい、可能です。

データベースに新しい「固有キー」を追加できます。

  • SQL Server Management Studioでは、テーブルのデザインモードに移動します。
  • 右クリック>インデックス/キー...
  • 「一意キー」
  • が列にCIDOrder
  • 閉じるダイアログウィンドウを追加して、テーブルを保存すると、そのタイプを設定し
  • キー新しいインデックス/を追加します。
+0

で一意制約を追加することができ、インデックスが有益であり得るものの、カート:) – ediblecode

2

テーブルにサンプルデータがあり、CID = 1およびorder = 1または2の別の行を挿入できないようにするには、一意のインデックスを追加しますそれらの列に

CREATE UNIQUE NONCLUSTERED INDEX IX_CID_ORDER ON dbo.TABLE 
    (
    CID, 
    Order 
    ) WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
GO 
2

...または、あなたは、2つの列

ADD CONSTRAINT CID_Order_Const UNIQUE(CID, Order) 
+0

良い点が唯一の制約はなく、インデックスを追加するためにありがとう他の方法で。 – cairnz

+0

@cairnz - そのようなことは本当にありません - SQL Serverのユニークな制約は一意のインデックスとして実装されています。 –

+0

うん、その純粋に構文的な砂糖 – Ben

関連する問題