probleme avec la fonction upper()

Le
test windows
Bonjour
j'ai construit une contrainte avec la fonction upper sur une colonne gender
ALTER TABLE [Employee] with check add CONSTRAINT [CK_Emp_Gender]
check ((upper([gender])='F' or upper([gender])='M'))
GO, mais si je fais des insertions dans ma table avec des valeurs gender='f'
les insertions restent en minuscule ds ma table..merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11884481
Bonjour,

test windows a écrit :
Bonjour
j'ai construit une contrainte avec la fonction upper sur une colonne gender
ALTER TABLE [Employee] with check add CONSTRAINT [CK_Emp_Gender]
check ((upper([gender])='F' or upper([gender])='M'))
GO, mais si je fais des insertions dans ma table avec des valeurs gender='f'
les insertions restent en minuscule ds ma table..merci



Si vous avez fait une installation de MS SQL Server par défaut, alors le
serveur et les base sont construite avec une collation insensible à la
casse.

Pour faire en sorte que cette contrainte marche, rajoutez une
spécification de collation dans l'expression littérale :

ALTER TABLE Employee
ADD CONSTRAINT CK_Emp_Gender
CHECK (gender COLLATE French_CS_AS IN ('F', 'M'))

Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlserver/collations/


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Med Bouchenafa
Le #11884461
Une contrainte CHECK ne peut pas changer les donnees mais juste les
verifier(comme son nom l'indique)
Si tu veux changer le f en F et le m en M a chaque entree, il faut le faire
dans un trigger INSERT et UPDATE

Bien cordialement
Med Bouchenafa


"test windows" news:
Bonjour
j'ai construit une contrainte avec la fonction upper sur une colonne
gender
ALTER TABLE [Employee] with check add CONSTRAINT [CK_Emp_Gender]
check ((upper([gender])='F' or upper([gender])='M'))
GO, mais si je fais des insertions dans ma table avec des valeurs
gender='f'
les insertions restent en minuscule ds ma table..merci



test windows
Le #11884431
merci à MED et FRED pour leur réponses

"Med Bouchenafa" a écrit :

Une contrainte CHECK ne peut pas changer les donnees mais juste les
verifier(comme son nom l'indique)
Si tu veux changer le f en F et le m en M a chaque entree, il faut le faire
dans un trigger INSERT et UPDATE

Bien cordialement
Med Bouchenafa


"test windows" news:
> Bonjour
> j'ai construit une contrainte avec la fonction upper sur une colonne
> gender
> ALTER TABLE [Employee] with check add CONSTRAINT [CK_Emp_Gender]
> check ((upper([gender])='F' or upper([gender])='M'))
> GO, mais si je fais des insertions dans ma table avec des valeurs
> gender='f'
> les insertions restent en minuscule ds ma table..merci
>





Publicité
Poster une réponse
Anonyme