我想从多个表中将多个记录插入到表的多个列中。下面是我的查询,但我只是将记录插入第一列。其他列填充空值。你能让我知道我做错了什么吗?
INSERT INTO [dbo].[dim_one_staging] ([Parent], [Child], [Child_Alias], [Operator])
SELECT
p.[Parent], c.[Child], a.[Child_Alias], o.[Child_Operator]
FROM
[dbo].[Staging_Parent] AS p
INNER JOIN
[dbo].[Staging_Child] AS c ON p.[id] = c.[id]
INNER JOIN
[dbo].[Staging_Child_Alias] AS a ON c.[id] = a.[id]
INNER JOIN
[dbo].[Staging_Operator] AS o ON a.[id] = o.[id]
答案 0 :(得分:0)
您的查询在语法上是正确的。这并不意味着它做了你想做的事。
可能是你没有
中的值,c.[Child]
,a.[Child_Alias]
,o.[Child_Operator]
表示满足其余查询条件的记录,因此null是正确的值。
可能是这些字段的连接表中没有valaues但是你应该有值,在这种情况下,数据输入这些表的方式存在错误。
或者可能是你试图从不需要值的表中获取值并将它们放入表中,因此需要使用coalesce(或默认值)来定义应该在哪里该值为null。
另一种可能性是桌面上有触发器将值清空。
只有你可以从你拥有的数据结构和附加到数据的含义中解决问题所在。我不知道如何解决您的问题,因为我实际上并不了解您的数据模型(与结构相反)。