2010-11-21 14 views
0

Ich erstellte eine SQL-Tabelle eine erzwungene Überprüfung Einschränkungen dafür, aber jetzt, wenn ich versuche, Daten einzufügen, erhalte ich eine Fehlermeldung.Einfügen Char-Wert in SQL-Tabelle

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]') 

Anweisung Einfügen

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

Fehlermeldung

Die INSERT-Anweisung in Konflikt mit der CHECK-Einschränkung "BranchTelTelNo". Der Konflikt ist in der Datenbank "StudentDetails", Tabelle "dbo.BranchTel", Spalte "TelNo" aufgetreten. Die Anweisung wurde beendet. Insert-Anweisung In BranchTel-Werte einfügen ('BG-205', '94-011-2571963') Fehlermeldung String- oder Binärdaten werden abgeschnitten. Die Anweisung wurde beendet.

Bitte helfen Sie mir

Antwort

2

Ihre Check-Einschränkung 14 Zeichen lang ist (Sie müssen die - auch zählen), während die Feldgröße ist 12.

Zusätzlich 940112571963 nicht das Muster nicht entsprechen xx-xxx-xxxxxxx Sie in Ihrer Check-Einschränkung definiert hat .

Sie müssen die Feldgröße auf 14 ändern und beim Einlegen sicherstellen, dass die Striche an der richtigen Stelle sind:

insert into BranchTel values('BG-205','94-011-2571963') 
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. 

Hier ist der Wert 94-011-2571963 Länge größer als 12 ist, die offensichtlich die Prüfung Einschränkung verletzt.

+0

es das Zählen - als auch. Ich habe versucht, 10 Ziffern auch mit dem - 10 einzufügen, aber es wird immer noch nicht eingefügt. Sollen wir das - in die Anweisung schreiben oder nur die Nummer schreiben? – Yoosuf