2010-11-21 18 views
0

J'ai créé une table SQL avec des contraintes de vérification obligatoires, mais maintenant, quand j'essaie d'insérer des données, je reçois un message d'erreur.Insertion de la valeur de Char dans la table 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]') 

Insérer déclaration

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

Message d'erreur

L'instruction INSERT en conflit avec la contrainte CHECK "BranchTelTelNo". Le conflit s'est produit dans la base de données "StudentDetails", la table "dbo.BranchTel", la colonne "TelNo". La déclaration a été terminée. Instruction d'insertion insertion dans les valeurs BranchTel ('BG-205', '94-011-2571963') Message d'erreur Les données chaîne ou binaires sont tronquées. La déclaration a été terminée.

S'il vous plaît aider moi

Répondre

2

Votre contrainte de vérification est de 14 caractères (il faut compter le - aussi bien), alors que la taille du champ est 12.

De plus, 940112571963 ne sont pas conformes au modèle xx-xxx-xxxxxxx que vous avez défini dans votre contrainte de vérification .

Vous devez changer la taille du champ à 14 et lors de l'insertion assurez-vous que les tirets sont au bon endroit:

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. 

Ici la valeur 94-011-2571963 longueur est supérieure à 12 qui viole évidemment la contrainte de vérification.

+0

Est-ce que ça compte le - ainsi. J'ai essayé d'insérer 10 chiffres également avec le - mais toujours il ne sera pas inséré Devrions-nous mettre le - dans la déclaration ou seulement écrire le numéro – Yoosuf