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).
Et là on me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Mais d'où sort cette idée de convertir mon message en entier ?Échec de la conversion de la valeur varchar 'DateOk : ' en type de données int.
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.)
Partager