Contrainte de numéro de téléphone dans SQL Server
Contrainte pour le numéro de téléphone à 7 chiffres. Comment faire pour vérifier si il est de 7 chiffres dans SQL Server?
CREATE TABLE Customer
(
C_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
C_Name VARCHAR(255) NOT NULL,
Phone INT
);
- Vous n'avez pas besoin de stocker les numéros de téléphone que les nombres entiers. Vous ne serez jamais à faire des mathématiques sur les numéros de téléphone. Les stocker en tant que varchar. Vous pouvez facilement ajouter une contrainte à vérifier LEN = 7 et la valeur aime pas '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
- essayez décimal(7,0) qui trows erreur pour stocker plus de longueur
- il a travaillé avec Téléphone VARCHAR VÉRIFIER(DATALENGTH(Téléphone)=7)
- Vous pouvez le faire CHAR(7), mais je pense que votre choix de contrainte est une mauvaise idée en premier lieu. Aux états-unis, par exemple, les numéros de téléphone sont en réalité de 10 chiffres avec les trois premiers étant facultatif. Lorsque vous traitez avec les pays étrangers, vous pouvez stocker le code de pays avec cependant de nombreux chiffres le nombre est.
- Ce qui se passe quand un Australien personne veut enregistrer leur numéro de téléphone? Dans ce pays, les numéros de téléphone peut comporter jusqu'à 8 caractères.
Vous devez vous connecter pour publier un commentaire.
Ne pas stocker les numéros de téléphone que les nombres entiers. Certains numéros valides, par exemple, peut commencer avec un 0 -- si pas aujourd'hui, peut-être dans l'avenir. Faire la vérification de la validation, vous pouvez utiliser
like
:Alternativement, vous pouvez écrire:
il a travaillé avec Téléphone VARCHAR VÉRIFIER(DATALENGTH(Téléphone)=7)
Vous feriez mieux de stocker votre numéro de téléphone, varchar2 ou char type. Dans Oracle, vous pouvez vérifier la validation du numéro de téléphone par Expression Régulière:
Selon la PNNA, à sept chiffres des numéros de téléphone aux états-unis sont NXX-XXXX, où N est 2 à 9 et X est 0 à 9. En outre, les deuxième et troisième chiffres ne peut à la fois être 1. En supposant que vous souhaitez stocker seul véritable PNNA les numéros de téléphone, vous pouvez utiliser la contrainte suivantes:
Si vous voulez ajouter un code de zone, vous devez utiliser un bigint et différents/des contraintes supplémentaires. En outre, toute sorte, en interne, les numéros de téléphone, les extensions, les indicatifs, les numéros de téléphone internationaux, etc., aura des besoins différents.
Comme quelqu'un qui traite fréquemment avec un grand nombre de (exclusivement PNNA) numéros de téléphone dans les bases de données, je ne trouve que de les garder dans un certain nombre de format est idéal, car il est plus rapide, plus petit, et a l'avantage de la prévention de divers problèmes de mise en forme par défaut. Même si pour la plupart des utilisateurs, il est probablement tout à fait discutable.
Disons que vous avez un étudiant de la table. Afin de vérifier la longueur de contact, le code suivant fonctionne:
Espère que cela peut vous aider à