将Char值插入SQL表

时间:2010-11-21 12:02:33

标签: sql insert char

我为它创建了一个强制检查约束的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 个答案:

答案 0 :(得分:2)

您的检查约束长度为14个字符(您还需要计算-),而字段大小为12。

此外,940112571963不符合您在检查约束中定义的模式xx-xxx-xxxxxxx

您需要将字段大小更改为14,并在插入时确保短划线位于正确的位置:

insert into BranchTel values('BG-205','94-011-2571963')

答案 1 :(得分:0)

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,这显然违反了检查约束。

相关问题