Modifier un champ Date par trigger INSERT
Bonjour tout le monde,
J'aimerais avoir un champ date avec pour valeur par défaut l'heure/date système.
Je suppose que pour y parvenir le mieux est un TRIGGER INSERT.
[EDIT : la valeur par défaut a été obtenue autrement ; le sujet de modifier un champ par le TRIGGER INSERT garde son intérêt pour d'autres utilisations, voir message n° 6]
Pour bien situer ce qui doit se faire dans quelle fenêtre, je tâtonne un peu.
L'instruction "SET LADATE = CURRENT_TIMESTAMP" ayant généré l'exception "erreur de syntaxe près de =" je l'ai retirée (j'ai essayé d'autres fonctions date avant, comme source).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE OR ALTER TRIGGER dbo.CreateTension
ON dbo.Tension
FOR INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @dateok INT;
SET LaDate = CURRENT_TIMESTAMP;
DECLARE @PRINTMESSAGE VARCHAR(150);
PRINT 'Exécution du trigger CreateTension'
SET @dateok = ISDATE(CURRENT_TIMESTAMP);
SET @PRINTMESSAGE = 'DateOk : ' + @dateok;
END |
Et là on me dit :
Citation:
Échec de la conversion de la valeur varchar 'DateOk : ' en type de données int.
Mais d'où sort cette idée de convertir mon message en entier ?
Je me suis méfié que @PRINTMESSAGE pouvait être un mot-clé réservé (je me suis déjà laissé allé précédemment à appeler le champ clef DATE, dans certes un moment d'égarement).
Alors, j'ai remplacé @PRINTMESSAGE par @PRTMSG.
Le résultat est le même.
(Mon message a été modifié, peut-être méritera-t-il aussi un changement de titre.)