Contraintes check +SQLServer

Fermé
gauchino Messages postés 12 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 30 mai 2005 - 30 mai 2005 à 09:52
 yazane - 1 juin 2007 à 16:22
bonjour
je voudrais une écrire une contrainte sur un champ de type varchar dans une BD SQLServer, le champ s'appelle nom je voudrais m'assurer qu'il ne comporte pas de chiffre(A-Z)
j'ai écrit:
alter table matable
add constrainte nom_valide
check(nom like('[A-Z][a-z]'))

mais SQLServer ne l'accepte pas, si vous pouvez m'aider
N.b : j'ai bien vérifier que les données existantes vérifient la contrainte
merci d'avance
A voir également:

5 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
30 mai 2005 à 10:10
La syntaxe:

create rule [MaRule] as @value like '[A-Z][a-z]'
GO
EXEC sp_bindrule N'MaRule', N'[NomTable].[NomColonne]'
GO
1
gauchino Messages postés 12 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 30 mai 2005
30 mai 2005 à 10:31
j'ai créer la régle, mais en inserant des données ,il n'accepte que les données de 2 lettres en majiscule ou miniscule( exemple FR ou fr) mais si je lui insére un nom de plus que 2 lettres il me génére un conflit à cause de la règle.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
30 mai 2005 à 10:06
Créé une rule (CREATE RULE...) puis bind là à ta colonne.
(Je n'ai plus la syntaxe en tête).
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
30 mai 2005 à 10:55
ah oui pardon.
Effectivement cette expression ne match pas plusieurs caractères.
0
gauchino Messages postés 12 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 30 mai 2005
30 mai 2005 à 11:03
et vous ne savez pas comment on fait pour tout l'alphabet
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
30 mai 2005 à 10:58
La syntaxe d'expression régulières de SQL Server est très limitée.
Je doute que tu arrive à ajouter une telle contrainte.

Il faudra implémenter cette contrainte au niveau de ton code, je le crains.
0
gauchino Messages postés 12 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 30 mai 2005
30 mai 2005 à 11:42
merci en tout cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
essaye avec ca :
alter table nom_de_table
add constrainte ck_1
check(nom not like '[0-9]')
0