Olá Roberto, tudo bom?
Então não dá erro por que esta dentro da regra, quando você criou o campo de [MATRICULA] você definiu como um CHAR (5), ou seja, sim, é possível colocar valores inferiores ao limite máximo que é cinco caracteres:
CREATE TABLE [TABELA DE VENDEDORES]
(
[MATRICULA] [char](5) NULL,
[NOME] [varchar](100) NULL,
[PERCENTUAL COMISSAO] [float] NULL
)
Respondendo a sua pergunta:
Não deveria dar erro já que o campo [MATRICULA] foi configurado como CHAR e não outro campo de número?
Não, Pois um CHAR permite colocar caracteres tanto numérico quanto de texto, se você executar o código abaixo ele rodaria normalmente, se eu substituísse o número 00235 por 'ABC', agora em vez de ter criado o campo de [MATRICULA] com um Char (5) e sim com INT então, sim, ele ocorreria o erro, mas no caso acima você apenas reduziu a quantidade de números quando foi inserir.
Esse seria o erro que ocasionaria caso eu colocasse qualquer outro tipo de carácter caso esse campo fosse um INT:
INSERT INTO [TABELA DE VENDEDORES]
(MATRICULA,NOME,[PERCENTUAL COMISSAO])
VALUES
('abc','Márcio Almeida Silva',0.08);
Mensagem 245, Nível 16, Estado 1, Linha 9
Falha ao converter o varchar valor 'abc' para o tipo de dados int.
Horário de conclusão: 2023-02-25T12:52:29.0378303-03:00
Espero ter respondido sua dúvida :)