将字符值插入SQL表

将字符值插入SQL表,sql,insert,char,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]

我创建了一个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') 错误消息 字符串或二进制数据将被截断。 声明已终止

请帮帮我

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

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

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

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

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

它也算数吗。我也尝试过用插入10位数字,但如果我们在语句中插入,或者只写数字,它仍然无法插入