Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme avec la fonction upper()

3 réponses
Avatar
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

3 réponses

Avatar
Fred BROUARD
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 *************************
Avatar
Med Bouchenafa
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" wrote in message
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



Avatar
test windows
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" wrote in message
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
>