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 : 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
Et là on me dit :
É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.)