我为它创建了一个强制检查约束的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') 错误信息 字符串或二进制数据将被截断。 声明已经终止。
请帮帮我
答案 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,这显然违反了检查约束。