Rechercher : dans
Par :

Contraintes check +SQLServer

Dernière réponse le 1 jun 2007 à 16:22:18 gauchino, le 30 mai 2005 à 09:52:27 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « contraintes check +SQLServer » dans :
Oracle - Optimiser les performances de l'Import/Export VoirOptimiser les performances de l’Import/Export Utiliser « commit=y » Adapter la taille du buffer au besoin « BUFFER=…. » Il est préférable de désactiver les triggers, les contraintes et supprimer les index avant l’import et les recréer après...
Télécharger MP3-Check VoirLe format MP3 est le format audio par excellence pour la compression audio. Mais il est quand même possible qu'il y est des erreurs dans les formats, notamment les tags. MP3-Check est une application qui permet de vérifier votre collection de...
SQL - Contraintes d'intégrité VoirExpression de contraintes d'intégrité Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient...
MERISE - Contraintes sur relations VoirAlors que les contraintes sur rôles permettent de définir les conditions de participation d'une entité à une relation, les contraintes sur relations permettent d'exprimer des restrictions sur les classes de relation. Contraintes d'exclusion sur...
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...

1

sebsauvage, le 30 mai 2005 à 10:06:35

Créé une rule (CREATE RULE...) puis bind là à ta colonne.
(Je n'ai plus la syntaxe en tête).

Répondre à sebsauvage

2

sebsauvage, le 30 mai 2005 à 10:10:26

La syntaxe:

create rule [MaRule] as @value like '[A-Z][a-z]'
GO
EXEC sp_bindrule N'MaRule', N'[NomTable].[NomColonne]'
GO

Répondre à sebsauvage

3

gauchino, le 30 mai 2005 à 10:31:55

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.

Répondre à gauchino

4

sebsauvage, le 30 mai 2005 à 10:55:27

Ah oui pardon.
Effectivement cette expression ne match pas plusieurs caractères.

Répondre à sebsauvage

6

gauchino, le 30 mai 2005 à 11:03:33

Et vous ne savez pas comment on fait pour tout l'alphabet

Répondre à gauchino

5

sebsauvage, le 30 mai 2005 à 10:58:42

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.

Répondre à sebsauvage

7

gauchino, le 30 mai 2005 à 11:42:05

Merci en tout cas

Répondre à gauchino

8

 yazane, le 1 jun 2007 à 16:22:18

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

Répondre à yazane