SQL. Funkcja trigger i update.

0

Witam, w mojej bazie po dodaniu całego wiersza, zostawiam w nim jedną komórkę pustą, czyli ma wartość null. Chcę aby trigger w bazie po dodaniu nowego wiersza, automatycznie wpisywał w tą jedną wolną komórkę aktualną datę i godzinę.
Udało mi się napisać poniższy skrypt, niestety nie wprowadza on żadnych zmian. Nie widzę też żadnego komunikatu.

USE [Instalacja__dozowania_spirytusu]
GO
/****** Object:  Trigger [dbo].[wpisz_aktualna_godzine]    Script Date: 2020-08-11 18:40:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER TRIGGER [dbo].[wpisz_aktualna_godzine]
   ON  [dbo].[Raporty]
   AFTER INSERT
AS 
BEGIN
	SET NOCOUNT ON;

	update Raporty
	set czas_zakonczenia_operacji= CURRENT_TIMESTAMP
	where
	czas_zakonczenia_operacji in
	(select  czas_zakonczenia_operacji from Raporty where czas_zakonczenia_operacji IS NULL)
	
	
END
0

Wróciłem do prostszej wersji która wcześniej nie działała, musiałem mieć jakiś błąd.
Ten skrypt działa, nie wklejam zbędnej całości kodu

update Raporty
	set czas_zakonczenia_operacji= CURRENT_TIMESTAMP
	where
	czas_zakonczenia_operacji IS NULL
20

Ale po co robisz to na triggerze? Ja bym raczej dał kolumnę typu timestamp z ustawionym default na CURRENT_TIMESTAMP. W ten sposób silnik bazy danych będzie się martwić, co i jak wpisać do tej kolumny.

DEFAULT CURRENT_TIMESTAMP means that any INSERT without an explicit time stamp setting uses the current time. Likewise, ON UPDATE CURRENT_TIMESTAMP means that any update without an explicit timestamp results in an update to the current timestamp value.

1 użytkowników online, w tym zalogowanych: 0, gości: 1