Обновить столбец, когда дата в другой таблице старше, чем сегодня (готово) + Вставить новую строку в другую таблицу с идентификатором из первой таблицы - PullRequest
0 голосов
/ 26 апреля 2019

Я обновляю таблицу dbo.Auftrag, если все связанные столбцы из дочерней таблицы dbo.Positionen устарели с этим SQL:

UPDATE dbo.Auftrag
SET Status = 5
WHERE NOT EXISTS (SELECT *
                  FROM dbo.Positionen
                  WHERE dbo.Positionen.FremdID = dbo.Auftrag.ID
                  AND dbo.Positionen.Lieferdatum >= convert(date, getdate()))

Теперь я хочу в том же случае, если Status установлен на 1, что в таблице dbo.Eventlog будет добавлена ​​новая строка с ID из таблицы dbo.Auftrag (из которой Статус меняется)

Я вставлю что-то подобное в dbo.Eventlog:

ID     ID_Auftrag      Referenz         Benutzer    [Datum und Uhrzeit]    Ereignis
PK(AI) dbo.Auftrag.ID  dbo.Auftrag.Ref  "BW"        CURRENT_TIMESTAMP      "Set Status"

Как мне это заархивировать?

1 Ответ

0 голосов
/ 26 апреля 2019

Создайте триггер следующим образом

CREATE TRIGGER AfterupdateAuftrag
ON dbo.Auftrag
AFTER UPDATE
AS
DECLARE @ID AS INT
DECLARE @STATUS AS INT
DECLARE @Referenz as nvarchar(50)        



SELECT @ID=ID,@STATUS=status,@Referenz=Ref FROM inserted
if @status=5 and  convert(time, GETDATE(), 108) between cast('00:00:00' as time) and cast('00:05:00' as time)
INSERT INTO dbo.Eventlog(ID_Auftrag,Referenz,Benutzer,[Datum und Uhrzeit],Ereignis) VALUES (
@id,@Referenz,'BW',getdate(),'Set Status')

GO
...