-1
我有一个类似于下面格式的文件。如何将数据从一个表格列插入另一个表格
test.txt
1 | ABC | A,B,C,D
我需要一个存储过程,以逐行为基础在细节表中插入记录。例如
ID Name Type
1 ABC A
1 ABC B
1 ABC C
1 ABC D
是否有可能通过SQL中的存储过程。任何帮助将不胜感激。提前致谢。
我有一个类似于下面格式的文件。如何将数据从一个表格列插入另一个表格
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