2017-10-17 68 views
0

我想寫一個插入語句,它將從數組中獲取數據。插入SQL數組

我有兩個變量,一個是BusinessID,一個是BusinessType。一個企業可以有多種類型。例如BusinessType = (1,2,3,4,5),但BusinessID只能是單個數字,例如BusinessID = 1

在mssql中是否有一個函數可以執行類似的操作;

for BusinessType in BusinessType 
    insert into Business 
    Values(BusinessID,BusinessType) 

這將非常給我結果

BusinessID BusinessType 
    1   1 
    1   2 
    1   3 
    1   4 
    1   5 
+2

通常它是應用層的責任是用逗號分隔的列表轉化爲一系列的'INSERT'語句。 – tadman

+0

什麼是「BusinessType」的SQL數據類型? – Dai

+0

BusinessType當前是一個int類型,但如果需要,它可以是其他東西。 – jol1234

回答

1

如果不是2016年,這裏是一個內聯方法,如果滿意的結果來分割你的字符串

取消對插入線。

Declare @BusinessID int = 1 
Declare @Type varchar(max) = '1,2,3,4,5' -- notice no()'s 

--Insert Into Business (BusinessID,BusinessType) 
Select BusinessID = @BusinessID 
     ,BusinessType = B.i.value('(./text())[1]', 'int') 
From (Select x = Cast('<x>' + replace(@Type,',','</x><x>')+'</x>' as xml).query('.')) as A 
Cross Apply x.nodes('x') AS B(i) 

返回

BusinessID BusinessType 
1   1 
1   2 
1   3 
1   4 
1   5