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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 *************************
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 *************************
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
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
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" <testwindows@discussions.microsoft.com> wrote in message
news:1AC72A98-959E-4BF6-8136-3DCD2A1E9A47@microsoft.com...
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
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
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 >
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" <testwindows@discussions.microsoft.com> wrote in message
news:1AC72A98-959E-4BF6-8136-3DCD2A1E9A47@microsoft.com...
> 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
>
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 >