Background
We have a very old database design. The worst example is the config table. It's one row with a separate column for each value. It should be a key value pair setup (obviously). It's used everywhere in both our old legacy code, and now in our new web based code. Horrifyingly there are now over 300 columns and worse more are added every now and again.
Goal
I'd love to chuck the table in the bin and replace it with a correct key value pair. However coding time is short so I'm trying to come up with a clever way of displaying it as the old one row for the old legacy code retrieving it from a key value pair.
Attempted Solution
Ordinarily I'd use a view - but given that the best code to display it (pinched from here: https://stackoverflow.com/a/15745076/12059261) is dynamic SQL, I've come unstuck as I cannot use dynamic SQL in a view (my searching tells me that views do not allow dynamic SQL - I'm assuming this is correct?)
Table example
CurrentConfig
Key Name Address etc. 1 My Company My Address etc.
WantedConfig
ID Key Value 1 Name MyCompany 2 Address My Address 3 etc. etc.
I want to change the table from its current form to the new form, but still be able to display it as the current form to legacy code.