У меня есть таблица с более чем 400 столбцами, и они названы с помощью архаичной системы именования нашего поставщика. Мне нужно переместить эти данные в новую таблицу, в которой используются соглашения об именах нашей компании, поэтому мне нужно изменить имена этих 400 столбцов.
К счастью, у меня также есть таблица, которая сопоставляет имена текущих столбцов с тем, какими они должны стать, например:
Acronym | Name
----------------
A | ColumnNameA
B | ColumnNameB
C | ColumnNameC
и т.д ...
Итак, мой вопрос таков:
Если бы это было всего несколько строк, я мог бы легко сделать
SELECT
A AS ColumnNameA,
B AS ColumnNameB
FROM
Table
Но слишком много столбцов, чтобы сделать это вручную. Каков наилучший способ динамического изменения имен столбцов в операторе SELECT на основе таблицы перекрестных ссылок?
Мои усилия на данный момент:
Я думал что-то вроде
SET @sqlCommand = 'SELECT ' + @columns + ' FROM Table'
EXEC (@sqlCommand)
но я понятия не имею, как установить @columns
в качестве динамически генерируемого списка всех сокращений в качестве окончательных имен столбцов. Это даже жизнеспособный подход?