美好的一天,
我会尝试尽可能简洁。
我有一个星型模式,中间有一个事实表,由一组维度表包围。每个维度表都会进入更多维度表。
伪视觉示例:
Super_FAC >--FK-- First_DIM --NK-- Snowflake_DIM
(>-
表示一对一关系,--
表示一对一关系,FK
表示外键,NK
表示自然键)
我想要实现的目标:我试图通过递归删除事实表中的记录,向上链到第一个维度表然后进入雪花维度表,具有最少量的脚本。 (不允许触发)
我做了什么:
DELETE Super_FAC
FROM Snowflake_DIM AS SDIM INNER JOIN
First_DIM AS FDIM ON SDIM.NK = FDIM.NK INNER JOIN -- For brevity, key is more complex
Super_FAC AS SFAC ON FDIM.FK = SFAC.FK
WHERE SDIM.ModifiedDate >= DeltaDate
DELETE First_DIM
FROM Snowflake_DIM AS SDIM INNER JOIN
First_DIM AS FDIM ON SDIM.NK = FDIM.NK -- For brevity, key is more complex
WHERE SDIM.ModifiedDate >= DeltaDate
DELETE Snowflake_DIM
FROM Snowflake_DIM AS SDIM INNER JOIN
WHERE SDIM.ModifiedDate >= DeltaDate
是否有更多优雅的解决方案?使用像CTE这样的东西?
提前致谢。
中号