【问题标题】:Cascade on insert @SQL Server 2008插入@SQL Server 2008 时的级联
【发布时间】:2016-03-23 09:20:34
【问题描述】:
由于缺乏 SQL Server 经验,我遇到了一些问题。
我现在面临的问题是我有需要插入主表的数据,因为我的数据库方案基于“雪花方案”..
在将数据添加到主表时,我无法理解该怎么做。我的从表(我得到了超过 6 个),其中大部分包含外键,应该更新/如果数据不存在,则 id(在主表中递增)也应该插入从表中。 .
我想也许一种解决方案是使用触发器。有人可以给我一些提示吗?
【问题讨论】:
标签:
sql
sql-server
database
database-design
relational-database
【解决方案1】:
是的。实时调频。并拿一些关于数据仓库设计的书。特别关注数据加载场景。
从我的工作经验来看,在非平凡场景中的普遍共识似乎不是自动执行此操作,而是通过多步骤加载过程。
您通常将数据加载到临时表(临时表)中,然后处理运行并首先填写相关表中缺少的信息。然后最后插入事实表(即雪花中的中心表)。
您遇到的根本问题是不可能将魔术数据插入相关的从表(正如您所说的那样),因为插入语句中不存在数据。 IE。您必须在插入中具有正确的 ID,并且您必须真正知道要在从表中填写哪些其他字段。自动级联根本不允许后者,从根本上使其成为死胡同。
这不是特定于 sql server 的问题。我们在这里讨论数据库工作的基本概念。