如何将大量列数据插入临时表? [英] How to insert bulk of column data to temp table?
本文介绍了如何将大量列数据插入临时表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要连续插入13列数据,数据存储在单个变量中,每部分数据用逗号分隔.
I need to insert 13 columns of data in a row, and the data is stored in a single variable and every part of data is separated by comma.
declare @cldt varchar(max)="SINDA,--,--,--,--,--,--,--,--,30.00,--,--,--";
我有以下临时表
declare @TempTab table (
idx int identity(1,1),
Component varchar(200),
Month1 varchar(max),
Month2 varchar(max),
Month3 varchar(max),
Month4 varchar(max),
Month5 varchar(max),
Month6 varchar(max),
Month7 varchar(max),
Month8 varchar(max),
Month9 varchar(max),
Month10 varchar(max),
Month11 varchar(max),
Month12 varchar(max)
);
如何将上述值插入到这个临时表中?
How can I insert the above value into this temp table?
我尝试了以下代码但没有用:
I had try the below code but no use:
insert into @TempTab select @cldt
推荐答案
DECLARE @xml xml
SELECT @xml = ('<r>' + REPLACE(@cldt,',','</r><r>') + '</r>')
INSERT INTO @TempTab
SELECT t.v.value('r[1]', 'varchar(10)') as Component,
t.v.value('r[2]', 'varchar(10)') as Month1,
t.v.value('r[3]', 'varchar(10)') as Month2,
t.v.value('r[4]', 'varchar(10)') as Month3,
t.v.value('r[5]', 'varchar(10)') as Month4,
t.v.value('r[6]', 'varchar(10)') as Month5,
t.v.value('r[7]', 'varchar(10)') as Month6,
t.v.value('r[8]', 'varchar(10)') as Month7,
t.v.value('r[9]', 'varchar(10)') as Month8,
t.v.value('r[10]', 'varchar(10)') as Month9,
t.v.value('r[11]', 'varchar(10)') as Month10,
t.v.value('r[12]', 'varchar(10)') as Month11,
t.v.value('r[3]', 'varchar(10)') as Month12
FROM @xml.nodes('/') as t(v)
SELECT *
FROM @TempTab
输出:
idx Component Month1 Month2 Month3 Month4 Month5 Month6 Month7 Month8 Month9 Month10 Month11 Month12
1 SINDA -- -- -- -- -- -- -- -- 30.00 -- -- --
这篇关于如何将大量列数据插入临时表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文