Syntaxe dans une formule de champs

Le
John
Bonjour,

Dans un champs nommé CREATION correspondant à la date de création d'un
enregistrement j'essaie de mettre la formule suivante

case when [CREATION] is NULL then getdate() end

pour que le champs ne prenne la valeur getdate() que lors de la création.
Mais cela ne fonctionne pas, cette formule n'est pas valide.

Quelqu'un aurait-il une idée ?

Merci

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Fred BROUARD
Le #11813861
John a écrit :
Bonjour,

Dans un champs nommé CREATION correspondant à la date de création d'un
enregistrement j'essaie de mettre la formule suivante

case when [CREATION] is NULL then getdate() end

pour que le champs ne prenne la valeur getdate() que lors de la création.
Mais cela ne fonctionne pas, cette formule n'est pas valide.

Quelqu'un aurait-il une idée ?

Merci






Dans quelle genre de requête ? INSERT ?? UPDATE ???

A +

--
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.datasapiens.com ***********************
John
Le #11813831
"Fred BROUARD" wrote in message

John a écrit :
> Bonjour,
>
> Dans un champs nommé CREATION correspondant à la date de création d'un
> enregistrement j'essaie de mettre la formule suivante
>
> case when [CREATION] is NULL then getdate() end
>
> pour que le champs ne prenne la valeur getdate() que lors de la


création.
> Mais cela ne fonctionne pas, cette formule n'est pas valide.
>
> Quelqu'un aurait-il une idée ?
>
> Merci
>
>
>

Dans quelle genre de requête ? INSERT ?? UPDATE ???

A +




Dans la définition de la table
Spécification de la colonne calculée

Merci par avance
Patrice
Le #11813801
Et le message d'erreur est ? Code SQL minimal montrant l'erreur ?

J'ai l'impression que l'on essaye de définir un champ calculé en fonction de
lui-même ? Ou est-ce un autre champ que l'on définit ??

Je dirais un champ normal avec une valeur par défaut : il prendra alors la
valeur par défaut à la création d'une ligne et la gardera sauf si une
instruction la change...

--
Patrice

"John" %23Le$

"Fred BROUARD" wrote in message

John a écrit :
> Bonjour,
>
> Dans un champs nommé CREATION correspondant à la date de création d'un
> enregistrement j'essaie de mettre la formule suivante
>
> case when [CREATION] is NULL then getdate() end
>
> pour que le champs ne prenne la valeur getdate() que lors de la


création.
> Mais cela ne fonctionne pas, cette formule n'est pas valide.
>
> Quelqu'un aurait-il une idée ?
>
> Merci
>
>
>

Dans quelle genre de requête ? INSERT ?? UPDATE ???

A +




Dans la définition de la table
Spécification de la colonne calculée

Merci par avance




John
Le #11813761
Le message d'erreur est simple "Erreur lors de la validation de la formule
pour la colonne "CREATION"

Le problème est que ce champ par défaut a comme valeur getdate(). Donc il me
met une nouvelle valeur à chaque fois. Ce que je ne souhaite pas.
D'où le case when... is null


"Patrice" news:%
Et le message d'erreur est ? Code SQL minimal montrant l'erreur ?

J'ai l'impression que l'on essaye de définir un champ calculé en fonction


de
lui-même ? Ou est-ce un autre champ que l'on définit ??

Je dirais un champ normal avec une valeur par défaut : il prendra alors la
valeur par défaut à la création d'une ligne et la gardera sauf si une
instruction la change...

--
Patrice

"John" %23Le$
>
> "Fred BROUARD" wrote in message
>
>> John a écrit :
>> > Bonjour,
>> >
>> > Dans un champs nommé CREATION correspondant à la date de création


d'un
>> > enregistrement j'essaie de mettre la formule suivante
>> >
>> > case when [CREATION] is NULL then getdate() end
>> >
>> > pour que le champs ne prenne la valeur getdate() que lors de la
> création.
>> > Mais cela ne fonctionne pas, cette formule n'est pas valide.
>> >
>> > Quelqu'un aurait-il une idée ?
>> >
>> > Merci
>> >
>> >
>> >
>>
>> Dans quelle genre de requête ? INSERT ?? UPDATE ???
>>
>> A +
>
>
> Dans la définition de la table
> Spécification de la colonne calculée
>
> Merci par avance
>
>




Oliv'
Le #11813741
*John
Le message d'erreur est simple "Erreur lors de la validation de la
formule pour la colonne "CREATION"

Le problème est que ce champ par défaut a comme valeur getdate().
Donc il me met une nouvelle valeur à chaque fois. Ce que je ne
souhaite pas.
D'où le case when... is null




a mon avis tu devrais plutot ne rien mettre par default
et créer un trigger for insert
avec ton case

--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook : http://faq.outlook.free.fr/
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
OE6 : http://www.faqoe.com/
Sql : http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


"Patrice" news:%
Et le message d'erreur est ? Code SQL minimal montrant l'erreur ?

J'ai l'impression que l'on essaye de définir un champ calculé en
fonction de lui-même ? Ou est-ce un autre champ que l'on définit ??

Je dirais un champ normal avec une valeur par défaut : il prendra
alors la valeur par défaut à la création d'une ligne et la gardera
sauf si une instruction la change...

--
Patrice

"John" %23Le$

"Fred BROUARD" wrote in message

John a écrit :
Bonjour,

Dans un champs nommé CREATION correspondant à la date de création
d'un enregistrement j'essaie de mettre la formule suivante

case when [CREATION] is NULL then getdate() end

pour que le champs ne prenne la valeur getdate() que lors de la
création. Mais cela ne fonctionne pas, cette formule n'est pas
valide.

Quelqu'un aurait-il une idée ?

Merci






Dans quelle genre de requête ? INSERT ?? UPDATE ???

A +




Dans la définition de la table
Spécification de la colonne calculée

Merci par avance






John
Le #11813711
Et c'est où les triggers dans EXPRESS 2005 ?

Pourquoi ils changent tout à chaque nouvelle version ??!!



"Oliv'" news:

*John > Le message d'erreur est simple "Erreur lors de la validation de la
> formule pour la colonne "CREATION"
>
> Le problème est que ce champ par défaut a comme valeur getdate().
> Donc il me met une nouvelle valeur à chaque fois. Ce que je ne
> souhaite pas.
> D'où le case when... is null


a mon avis tu devrais plutot ne rien mettre par default
et créer un trigger for insert
avec ton case

--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook : http://faq.outlook.free.fr/
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
OE6 : http://www.faqoe.com/
Sql : http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>
> "Patrice" > news:%
>> Et le message d'erreur est ? Code SQL minimal montrant l'erreur ?
>>
>> J'ai l'impression que l'on essaye de définir un champ calculé en
>> fonction de lui-même ? Ou est-ce un autre champ que l'on définit ??
>>
>> Je dirais un champ normal avec une valeur par défaut : il prendra
>> alors la valeur par défaut à la création d'une ligne et la gardera
>> sauf si une instruction la change...
>>
>> --
>> Patrice
>>
>> "John" >> %23Le$
>>>
>>> "Fred BROUARD" wrote in message
>>>
>>>> John a écrit :
>>>>> Bonjour,
>>>>>
>>>>> Dans un champs nommé CREATION correspondant à la date de création
>>>>> d'un enregistrement j'essaie de mettre la formule suivante
>>>>>
>>>>> case when [CREATION] is NULL then getdate() end
>>>>>
>>>>> pour que le champs ne prenne la valeur getdate() que lors de la
>>>>> création. Mais cela ne fonctionne pas, cette formule n'est pas
>>>>> valide.
>>>>>
>>>>> Quelqu'un aurait-il une idée ?
>>>>>
>>>>> Merci
>>>>>
>>>>>
>>>>>
>>>>
>>>> Dans quelle genre de requête ? INSERT ?? UPDATE ???
>>>>
>>>> A +
>>>
>>>
>>> Dans la définition de la table
>>> Spécification de la colonne calculée
>>>
>>> Merci par avance




Patrice
Le #11813681
Je pense qu'il serait souhaitable que nous explique ton problème de base.

Tu ne ferais pas un champ calculé avec GETDATE comme expression par hasard ?
Ce qui effectivement te donnera une nouvelle valeur à chaque fois...

Dans ce cas là tu peux créer un champ "normal" non calculé avec une valeur
par défaut GETDATE. Le champ sera donc alimenté par la date de création à la
création d'une nouvelle ligne en renverra ensuite toujours cette même
date...

Si les remarques des uns et des autres ne mènent à rien indique donc la
définition actuelle de ton champ (extrait de code SQL SVP !) et ce qui te
gène dans le comportement actuel...

--
Patrice

"John"
Le message d'erreur est simple "Erreur lors de la validation de la formule
pour la colonne "CREATION"

Le problème est que ce champ par défaut a comme valeur getdate(). Donc il
me
met une nouvelle valeur à chaque fois. Ce que je ne souhaite pas.
D'où le case when... is null


"Patrice" news:%
Et le message d'erreur est ? Code SQL minimal montrant l'erreur ?

J'ai l'impression que l'on essaye de définir un champ calculé en fonction


de
lui-même ? Ou est-ce un autre champ que l'on définit ??

Je dirais un champ normal avec une valeur par défaut : il prendra alors
la
valeur par défaut à la création d'une ligne et la gardera sauf si une
instruction la change...

--
Patrice

"John" %23Le$
>
> "Fred BROUARD" wrote in message
>
>> John a écrit :
>> > Bonjour,
>> >
>> > Dans un champs nommé CREATION correspondant à la date de création


d'un
>> > enregistrement j'essaie de mettre la formule suivante
>> >
>> > case when [CREATION] is NULL then getdate() end
>> >
>> > pour que le champs ne prenne la valeur getdate() que lors de la
> création.
>> > Mais cela ne fonctionne pas, cette formule n'est pas valide.
>> >
>> > Quelqu'un aurait-il une idée ?
>> >
>> > Merci
>> >
>> >
>> >
>>
>> Dans quelle genre de requête ? INSERT ?? UPDATE ???
>>
>> A +
>
>
> Dans la définition de la table
> Spécification de la colonne calculée
>
> Merci par avance
>
>








Poster une réponse
Anonyme