我試圖創建一個存儲過程,該列表接收具有特定列的值的字符串,然後爲每個值插入一行按「,」。如何從包含特定列的字符串中執行SQL Server中的INSERT
例如:
--The string I mentioned
@Objectid = '15, 21, 23, 53'.
--Then I wish to insert those values into a table like for instance
#Result(ID bigint, AppID bigint, ObjectID bigint)
因此,我希望在該表執行插入,並且每個@Objectid的 值放置到不同的行的#Result並在 柱的ObjectID,同時在同時,將其他列填充爲 的值,這些值存儲在同一存儲過程的變量中。有沒有辦法做到這一點?如果是這樣,有沒有辦法做到這一點,而不使用遊標?
傳遞給PROC –
有在SQL的方式分裂出一個字符串之前使用在代碼表值參數和分割(例如,當由逗號delimeted) - 看看[現有Q&A]( http://stackoverflow.com/search?q=%23sql-server+split+a+string)。但是,如果您事先能夠分配您的ID,情況會好得多。您不需要'CURSOR',但可能需要使用'WHILE'循環多次執行'INSERT'語句。你的源系統是什麼(即你如何得到Id的列表)? – Serge
哪個版本的SQL Server?在2016年有可以使用的STRING_SPLIT函數 – Kostis