Why are you trying to use dynamic sql. It's look like you need full outer join:
SELECT ISNULL(t.Column_Name, v.Column_Name) AS Column_Name
,CASE WHEN t.Column_Name IS NULL THEN v.Value
ELSE t.Value
END AS Value
FROM @Temp_Table t
FULL OUTER JOIN St_Value v
ON v.Column_Name= t.Column_Name