Я создал таблицу с именем test
со столбцом с именем code
:
create table test(
code char(3) not null);
Затем я заполнил таблицу следующими данными:
insert into test values ('A12');
insert into test values ('B23');
insert into test values ('C45');
Затем я изменил столбец, чтобы сделать его char (4):
alter table test
alter column code char(4) not null;
Затем я добавил «X» ко всем существующим данным, чтобы они стали длиной 4 символа:
update test
set code='X'+code
where LEN(code)=3;
Пока все хорошо, но потом, когда я попытался добавить контрольное ограничение:
alter table test
add constraint codeCheck check (code like 'A-Z''A-Z''0-9''0-9');
Я получил эту ошибку:
The ALTER TABLE statement conflicted with the CHECK constraint "codeCheck".
Я понимаю, что ошибка подразумевает, что существующие данные нарушают проверочное ограничение, которое я пытаюсь добавить в таблицу, но почему?
и как мне сделать так, чтобы существующие данные и контрольное ограничение не нарушали друг друга?