【发布时间】:2020-10-20 10:55:20
【问题描述】:
我得到一个带有动态轴的查询,它将返回 N 列。我想将结果插入到定义了固定列数的临时表中。
假设查询返回 4 列,而临时表有 20 列,我如何将结果插入前 4 列,其余为空?
临时表:
create table #tempTable (
Id bigint, [Name] uniqueidentifier,
Column_1 nvarchar(max), Column_2 nvarchar(max), Column_3 nvarchar(max), Column_4 nvarchar(max), Column_5 nvarchar(max),
Column_6 nvarchar(max), Column_7 nvarchar(max), Column_8 nvarchar(max), Column_9 nvarchar(max), Column_10 nvarchar(max),
Column_11 nvarchar(max), Column_12 nvarchar(max), Column_13 nvarchar(max), Column_14 nvarchar(max), Column_15 nvarchar(max),
Column_16 nvarchar(max), Column_17 nvarchar(max), Column_18 nvarchar(max), Column_19 nvarchar(max), Column_20 nvarchar(max)
)
我用来插入的代码:
INSERT INTO #tempTable VALUES (@query)
返回错误“列名或提供的值的数量与表定义不匹配。”
我有一个变量来计算枢轴将添加的列数,也许我可以用这个做点什么?
【问题讨论】:
-
在
INSERT子句中定义你想要INSERT的列。 -
当数据透视查询的结果是动态的时,我该怎么做?