【发布时间】:2016-10-27 19:46:24
【问题描述】:
我使用的是 SQL Server 2012。
我有两个表,tblPerson 和 tblGender。
tblPerson 有 4 列
- 身份证
- 姓名
- 电子邮件
- GenderID(外键)
tblGender 有 2 列
- 身份证
- 性别
tblGender 只有两个条目,男性和女性,id 为 1 和 2。
现在,如果我在 GenderId 列中插入错误数据,如 3、4 等号码。
我该如何解决这个问题?
【问题讨论】:
-
Stop worrying about
IDENTITYgaps - 他们真的不是问题!您看到的行为只是身份列的工作方式 - 没有简单的方法可以“解决”这个问题 - 只需接受它并继续前进 -
如果您真的必须防止这种情况发生,那么您需要验证正在插入的数据在实际插入之前将其放入表中,以使这种情况永远不会发生
-
不要使用身份约束,只需通过获取最大 id 并以 1 递增的方式手动将数据输入到 ID 列
-
@NazirUllah:这真的是非常糟糕的建议 - 在连接了多个客户端的繁忙系统中,这将不起作用 可靠!你很快就会有重复!!请不这样做!
-
@marc_s:非常感谢您的回答。
标签: sql-server foreign-key-relationship identity-column