如何将数据从一个表格列插入另一个表格
问题描述:
我有一个类似于下面格式的文件。如何将数据从一个表格列插入另一个表格
test.txt
1 | ABC | A,B,C,D
我需要一个存储过程,以逐行为基础在细节表中插入记录。例如
ID Name Type
1 ABC A
1 ABC B
1 ABC C
1 ABC D
是否有可能通过SQL中的存储过程。任何帮助将不胜感激。提前致谢。
答
您可以:
拆分它在你的代码,然后将其插入
-
散装在一个临时表中插入他们和他们分裂的所有这样的:
-- SAMPLE Data declare @data table(id int, name varchar(10), type varchar(100)) insert into @data(id, name, type) values (1, 'ABCD', 'A, B, C, D') , (2, 'EFG', 'E, F, G') , (3, 'HI', 'H, I') -- Split All Rows and Types Select ID, Name, ltrim(rtrim(value)) From ( Select *, Cast('<x>'+Replace(d.type,',','</x><x>')+'</x>' As XML) As types From @data d ) x Cross Apply ( Select types.x.value('.', 'varchar(10)') as value From x.types.nodes('x') as types(x) ) c
输出:
ID Name Type
1 ABCD A
1 ABCD B
1 ABCD C
1 ABCD D
2 EFG E
2 EFG F
2 EFG G
3 HI H
3 HI I