* Bonjour, *
J'ai un champ nommé "Téléphone"de type varchar
et je dois ajouter une contrainte au quelle le numéro de téléphone doit être composer de 10 chiffres de (0 à 9)
pourriez vous m'aidez s'il vous plait
* Bonjour, *
J'ai un champ nommé "Téléphone"de type varchar
et je dois ajouter une contrainte au quelle le numéro de téléphone doit être composer de 10 chiffres de (0 à 9)
pourriez vous m'aidez s'il vous plait
Quel est ton SGBD ?
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
SQL SERVER 2005
Il faut d'abord bien se renseigner sur ce que tu veux stocker. Si j'ai bien compris il s'agit de stocker un numéro de téléphone.
Un numéro de téléphone peut être composé de 2, 3, 4 jusqu'à 13 chiffres.
Si tu es CERTAIN qu'à chaque fois tu attend un numéro à 10 chiffres alors tu peux :
1.) Changer le type VARCHAR de la colonne Telephone en CHAR (10)
2.) Poser la contrainte
Mais encore une fois renseigne-toi bien, à ta place je vais tailler la colonne Telephone sur 13 caractères et j'aurai donc quelque chose qui ressemble à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Telephone CHAR(10) NULL CONSTRAINT ck_phone CHECK(Telephone LIKE ('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Telephone CHAR(13) NULL CONSTRAINT ck_phone CHECK(Telephone LIKE ('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') OR Telephone 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][0-9]'))
Etienne ZINZINDOHOUE
Billets-Articles
Question :
Est ce que le numéro de téléphone que vous désirez stocker peut contenir des caractères : espaces ' ', tirets '-' , point '.' ?
A+
Etienne ZINZINDOHOUE
Billets-Articles
Sql Server n'offre pas la souplesse des expressions régulières et les limites du lie sont très contraignantes.
Je vous conseille donc de ne pas tenter de placer cette règle du côté Sql Server.
Il est possible à partir de la version 2005 d'utiliser CLR et les RegExp pour pallier ce défaut (et si votre besoin s'en fait vraiment ressentir).
Ne pas placer cette contrainte côté SQL Server me parait dangereux en plus ...
++
Un exemple ici
http://msdn.microsoft.com/fr-fr/magazine/cc163473.aspx
Etienne ZINZINDOHOUE
Billets-Articles
Partager