Ho trovato questa funzione ma non capisco se va bene, non capisco dove inserire i riferimenti alle 2 diverse tabelle per fare la select e la insert qualcuno mi può aiutare a riscriverla per quello che serve a me?

codice:
use tempdb
go
 
drop table Tabella_2_tmp
go
 
CREATE TABLE Tabella_2_tmp(dccl_tipo_1 int,
dccl_tipo_2 int,
dccl_tipo_3 int,
...................
dccl_tipo_47 int,
) 
select Classificazione from [dbo].[tabella tabella_1 ]



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[colSplit1] 
( 
@InputString VARCHAR(MAX)
)
RETURNS 
@OutputTable TABLE 
(
-- Add the column definitions for the TABLE variable here
Val VARCHAR(MAX)
)
AS
BEGIN
-- Fill the table variable with the rows for your result set 
DECLARE @Val VARCHAR(MAX),@Pos INT,@Len INT
SET @Len = LEN(@InputString)


SET @Pos=0
WHILE (CHARINDEX(';',@InputString,@Pos)-@Pos) > 0
BEGIN


SET @Val = SUBSTRING(@InputString,@Pos,(CHARINDEX(';',@InputString,@Pos)-@Pos))


INSERT INTO @OutputTable(Val)
SELECT @Val 
SET @Pos = CHARINDEX(';',@InputString,@Pos)+1


END
IF @Pos <= @Len
BEGIN


SET @Val = SUBSTRING(@InputString,@Pos,(@Len+1)-@Pos)


INSERT INTO @OutputTable(Val)
SELECT @Val


END


RETURN 
END