Я использую SQL Server 2012.Как решить проблему увеличения столбца Identity, когда нарушается внешняя связь?
У меня есть две таблицы, tblPerson и tblGender.
tblPerson 4 колонки
- ID
- Имя
- GenderID (иностранный ключ)
tblGender имеет 2 колонки
- ID
- Пол
tblGender имеет только две записи, мужского и женского пола, имеющего идентификатор 1 и 2.
Теперь, если я ввожу некорректные данные в столбец GenderId, как 3, 4 и т.д. он отклоняет значение, но увеличивает значение столбца Identity, и когда я вставляю другие данные, даже если он действителен, он дает следующий номер id.
Как я могу решить эту проблему?
[Прекратить беспокоиться о пробелах «ИДЕНТИФИКАЦИИ») (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-expecting-identity-to-mean-something .aspx) - они действительно ** НЕ ** проблема! Поведение, которое вы видите, - это то, как работают столбцы идентичности - и нет простого способа «исправить» это - просто примите его и перейдите на –
Если вы действительно хотите предотвратить это, вам необходимо ** подтвердить ** данные вставляются ** перед ** фактически вставляют их в таблицу, так что эта ситуация никогда не возникает –
не используют ограничение идентификации, просто введите данные вручную в столбец идентификаторов, получив максимальный id и приращение с помощью одного –