2015-10-15 151 views
-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中的存儲過程。任何幫助將不勝感激。提前致謝。

回答

1

您可以:

  • 拆分它在你的代碼,然後將其插入

  • 散裝在一個臨時表中插入他們和他們分裂的所有這樣的:

    -- 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 
相關問題