每天,都会将一些行插入到 SQL Server 表 (T_PAST) 中。这些行将是过去(即 2013 年 8 月 1 日)的记录以及将来的记录(即 2014 年 1 月 1 日)。我想将过去的日期记录留在表中(T_PAST),但对于未来的日期记录,我想:1)从原始表中删除它们 2)将它们插入到只有未来日期记录的新表中( T_未来)
问题是,未来的日期记录可能会在列中发生变化,因此我宁愿截断 T_FUTURE 表并重新插入记录,而不是运行更新查询。
从正确的记录插入到 T_PAST 中,正确的记录从 T_PAST 中删除并且 T_FUTURE 表被截断的意义上,一切正常。我的问题是,当我插入多个未来日期记录时,只有最后一条记录显示在 T_FUTURE 表中,而不是全部。
ALTER TRIGGER [dbo].[trg_GetFuture]
ON [dbo].[T_PAST]
AFTER INSERT
AS
BEGIN
TRUNCATE TABLE dbo.T_FUTURE
END
BEGIN
INSERT INTO dbo.T_FUTURE
SELECT *
FROM INSERTED
WHERE DATE > GETDATE()
END
BEGIN
DELETE FROM dbo.T_PAST
WHERE DATE > GETDATE()
END
谢谢!!