Вставка значения Char в таблицу SQL - PullRequest
0 голосов
/ 21 ноября 2010

Я создал таблицу SQL с принудительной проверкой ограничений на нее, но теперь, когда я пытаюсь вставить данные, я получаю сообщение об ошибке.

create table BranchTel
(
    BrRegNo varchar(10) REFERENCES Branch(BrRegNo), 
    TelNo char(12)
    PRIMARY KEY(BrRegNo)
)
ALTER TABLE BranchTel Add Constraint BranchTelTelNo
Check(TelNo LIKE '[0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

Вставить выписку

insert into BranchTel values('BG-205','940112571963')

Сообщение об ошибке

Оператор INSERT конфликтовал с ограничением CHECK "BranchTelTelNo". Конфликт произошел в базе данных «StudentDetails», таблице «dbo.BranchTel», столбце «TelNo». Заявление было прекращено. Вставить заявление вставить в значения BranchTel («BG-205», «94-011-2571963») Сообщение об ошибке Строка или двоичные данные будут проигнорированы. Заявление было прекращено.

Пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 21 ноября 2010

Ваше проверочное ограничение имеет длину 14 символов (вам также необходимо сосчитать -), а размер поля - 12.

Кроме того, 940112571963 не соответствует шаблону xx-xxx-xxxxxxxВы определили в своем проверочном ограничении.

Вам необходимо изменить размер поля на 14, и при вставке убедитесь, что тире находятся в нужном месте:

insert into BranchTel values('BG-205','94-011-2571963')
0 голосов
/ 21 ноября 2010
Insert statement insert into BranchTel values('BG-205','94-011-2571963') Error message String or binary data would be truncated. The statement has been terminated.

Здесь значение 94-011-2571963 длина больше 12, что явно нарушает проверочное ограничение.

...