First of all change your split function as shown below. It will return Identity column as well as values.
CREATE FUNCTION [dbo].[Split]
(
@RowData VARCHAR(MAX),
@SplitOn NVARCHAR(5)
)
RETURNS @RtnValue TABLE
(
Id INT IDENTITY(1,1),
Data VARCHAR(MAX)
)
AS
BEGIN
DECLARE @Cnt INT
SET @Cnt = 1
WHILE (CHARINDEX(@SplitOn,@RowData)>0)
BEGIN
INSERT INTO @RtnValue (data)
SELECT Data = LTRIM(RTRIM(SUBSTRING(@RowData,1,CHARINDEX(@SplitOn,@RowData)-1)))
SET @RowData = SUBSTRING(@RowData,CHARINDEX(@SplitOn,@RowData)+1,LEN(@RowData))
SET @Cnt = @Cnt + 1
END
INSERT INTO @RtnValue (data)
SELECT Data = LTRIM(RTRIM(@RowData))
RETURN
END
after that execute following block :
DECLARE @strIndustryID varchar(MAX)='1,2,3,4,5,6,7,44,55,66,77,88'
DECLARE @strIndustryDescription varchar(MAX)='desc1|desc2|desc3|desc4|desc5|desc6|desc7|desc44|desc55|desc66|desc77|desc88'
DECLARE @COUNT INT=0
CREATE TABLE #TEMP1
(
ID INT,
strVal VARCHAR(50)
)
INSERT INTO #TEMP1
SELECT * FROM dbo.Split(@strIndustryID,',');
CREATE TABLE #TEMP2
(
ID INT,
strVal VARCHAR(50)
)
INSERT INTO #TEMP2
SELECT * FROM dbo.Split(@strIndustryDescription,'|');
INSERT INTO Table1(COL1,COL2)
SELECT T1.strVal,t2.strVal
FROM #TEMP1 T1
INNER JOIN #TEMP2 T2 ON T1.ID = T2.ID
DROP TABLE #TEMP2
DROP TABLE #TEMP1