Napisz/użyj funkcji dzielącej string na wiersze, np takiej: https://www.mssqltips.com/sqlservertip/1665/sql-server-clr-and-sql-split-functions-to-parse-a-delimited-string/
i użyj do wyciagniecia interesujących cię danych:
select '1 3000 S1'+char(13)+'S2'+char(13)+'S3' as kol into #tmp
select
left(kol,charindex(' ',kol)-1) [nr wiersza],
substring(kol,charindex(' ',kol)+1,charindex(' ',kol,charindex(' ',kol)+1)-charindex(' ',kol)) [wartosc],
case when charindex(' ',string)>0 then
right(string,charindex(' ',reverse(string))-1)
else
string
end produkt
from #tmp
cross apply [dbo].[fnParseStringTSQL](kol,char(13)) dt
drop table #tmp