The technique you need is
UNPIVOT[
^]
If you first cross join your tables
select *
from table2
cross join table1
You will get
col col-1 col-2 col-3
col-1 1 2 3
col-2 1 2 3
col-3 1 2 3
As you can see - the values you want are across the top, but you want them in rows. So ..
select columnname, colvalue from
(select *
from table2
cross join table1
) src
unpivot (colvalue for columnname in ([col-1],[col-2],[col-3])) AS pvt
will give you
columnname colvalue
col-1 1
col-1 1
col-1 1
col-2 2
col-2 2
col-2 2
col-3 3
col-3 3
col-3 3
Closer to what you want but you will need to use DISTINCT to get exactly what you need. I'll leave that as an exercise for you