Building an bridge table from existing one with the use of the SELECT INTO
Instead of use a CURSOR I'd suggest you to use an iterative solution using WHILE.




CREATE TABLE MEASURES (id int, id_column1 int, id_column2 int, id_column3 int, stuff varchar(20));
INSERT INTO MEASURES VALUES
(1, 2017, 2024, 1452, 'red'),
(2, 4125, NULL, 5234, 'blue'),
(3, NULL, 5234, 7234, 'pink');
GO






CREATE TABLE BRIDGE (id int, idc int);
GO






DECLARE @idColumn INT = 1;
DECLARE @cmd VARCHAR(MAX) = '';

WHILE @idColumn &lt;= 3
BEGIN
    SET @CMD =   'INSERT INTO BRIDGE'
               + ' SELECT id, id_column' 
               + CAST(@idColumn AS VARCHAR(10))
               + ' FROM MEASURES'
               -- uncomment to remove NULL values
               --+ ' WHERE id_column'
               --+ + CAST(@idColumn AS VARCHAR(10))
               --+ ' IS NOT NULL;';

    EXEC (@CMD);

    SET @idColumn = @idColumn + 1;

    -- uncomment to check SQL statements 
    --SELECT @CMD;
END

SELECT * FROM BRIDGE ORDER BY id;
GO



id |  idc
-: | ---:
 1 | 2017
 1 | 2024
 1 | 1452
 2 | 5234
 2 | null
 2 | 4125
 3 | null
 3 | 5234
 3 | 7234



dbfiddle here