【发布时间】:2015-12-11 19:44:52
【问题描述】:
我的桌子有问题,我无法真正解决这个问题。我的桌子是这样的:
是的,我知道这不是英语,但应该没问题。
我有另一个看起来像这样的表:
表 2 - Skema
我的表 1 上有一个触发器,它将数据插入到表 2 中
CREATE TRIGGER [Skema_Opdatering]
ON [dbo].[Skilt]
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
UPDATE Skema SET Skema.Emne = Skilt.Arbejdsopgave
FROM Skilt
WHERE CONVERT(varchar(25),Skema.Tid,108)
BETWEEN
dateadd(minute,((DATEDIFF(minute, cast(0 as DateTime), skilt.Tid_startet) + 7)/ 15) * 15, cast(0 as DateTime))
AND
dateadd(minute,((DATEDIFF(minute, cast(0 as DateTime), skilt.Tid_sluttet) + 7)/ 15) * 15, cast(0 as DateTime))
AND
CONVERT(varchar(25),Skema.Tid,105) = CONVERT(varchar(25),Skilt.Dato,105)
;
END
但我的问题是,如果我插入/更新超过 1 次,它不会从表 2 中删除旧值,我最终会得到一个应该为 NULL 但有值的行。所以我的问题是如何在另一个更新/插入之前将我的表重置为 NULL,以便我的触发器可以插入新值?
【问题讨论】:
标签: sql sql-server sql-update