SQL插入的数据检查

时间:2012-03-12 11:14:52

标签: sql sql-server sql-server-2008

我有一个包含以下示例数据的数据:

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

时,我无法插入CID is 1

3 个答案:

答案 0 :(得分:3)

是的,这是可能的。

您可以向数据库中添加新的“唯一键”。

  • 在SQL Server Management Studio中,转到表格的设计模式。
  • 右键单击>索引/键...
  • 添加新索引/密钥
  • 将其类型设置为“唯一键”
  • 添加列CIDOrder
  • 关闭对话窗口并保存表格

答案 1 :(得分: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)