外键关系违反时如何解决Identity列增量问题?

时间:2016-06-25 07:27:12

标签: sql-server foreign-key-relationship identity-column

我正在使用SQL Server 2012。

我有两张桌子,tblPerson和tblGender。

tblPerson有4列

  • ID
  • 名称
  • 电子邮件
  • GenderID(外键)

tblGender有2列

  • ID
  • 性别

tblGender只有两个条目,男性和女性,id为1和2。

现在,如果我将不良数据插入GenderId列,如3,4等,它会拒绝该值,但它会增加Identity列值,当我插入另一个数据时,即使它是有效的,它也会给出下一个id号。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先,正如已经提到的那样,这是IDENTITY列的正常行为。 SQL Server首先插入行,增加Identity列值,但由于约束失败而拒绝此行。

建议如下:
1.将ID列留空。 2.对于非常顺序的' EmployeeID'您可以使用Sequence编号,该变量是从变量中插入的:https://msdn.microsoft.com/en-us/library/ff878058(v=sql.110).aspx 那么你应该在你的' EmployeeID'。

中没有差距