В моей базе данных SQL Server есть 2 таблицы, например [Camera]
и [CameraData]
.Как написать триггер, который изменит значение в [CameraData]
после вставки строки в [CameraData]
из-за дельты в [Camera]
.
Например, у нас есть 2 камеры в [Camera]
:
- Камера 1 с {id} = 1 и {delta} = ноль
- Камера 2 с {id} = 2 и {delta} = 3
Так что когдамы автоматизировали вставку в таблицу [CameraData]
, например:
Id_camera = 2, angle = 30, Changed = null
В этом случае нам нужно проверить, есть ли у нас дельта в [Камера] на камере 2, и если это правда, нам нужно изменить вставку на:
Id_camera = 2, angle = 33 (angle + Camera.Delta), Changed = True
Обновление 1
Согласно комментарию [3] столбец в таблице [CameraData]
, где угол расположен
CREATE TRIGGER Delta_Angle
ON CameraData
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE CameraData
SET DeltaFlag = 1, [3] = inserted.[3] + i.DeltaAngle
FROM CameraData h
INNER JOIN Camera i ON h.ID_Camera = i.ID_Camera
WHERE i.DeltaAngle != ''
END