I created a table called `test` with column called `code`:

```
create table test(  
code char(3) not null);

```

I then populated the table with the following data:

```
insert into test values ('A12');
insert into test values ('B23');
insert into test values ('C45');

```

I then altered the column to make it char(4):

```
alter table test
alter column code char(4) not null;

```

I then added a 'X' to all existing data so that it becomes 4 characters long:

```
update test
  set code='X'+code
where LEN(code)=3;

```

So far so good but then when I tried to add a check constraint:

```
alter table test
add constraint codeCheck check (code like 'A-Z''A-Z''0-9''0-9');

```

I got this error:

`The ALTER TABLE statement conflicted with the CHECK constraint "codeCheck".`

I understand that the error implies that the existing data violates the check constraint that I am trying to add into the table, but why?

and how do I do it such that the existing data and check constraint do not violate each other?