如何限制表中的脏数据插入?

时间:2015-09-15 04:52:28

标签: sql sql-server sql-server-2008 tsql sql-server-2012

我有一个表格ItemGroup,它有两列,例如ItemIDItemGroupID

因此,当插入此表时(已经使proc我无法更改),没有约束来避免脏数据插入。

正确的数据:

ItemID     ItemGroupID
1          10
2          11

错误的数据

ItemID     ItemGroupID
1          10
1          11
2          11

值为1和11的输入错误。

2 个答案:

答案 0 :(得分:3)

首先从表中删除错误的数据然后执行下面的脚本,一旦执行下面的脚本,表将不允许这样的错误数据。

  ALTER TABLE ItemGroup
  ADd UNIQUE un_const(ItemID, ItemGroupID);

答案 1 :(得分:0)

使用复合(两列)主键创建一个主表,并在ItemGroup表中创建复合外键ON ItemID,ItemGroupID并使用复合主键引用它。