Перебрать каждое имя столбца из одной таблицы и вставить это имя в другую таблицу? - PullRequest
0 голосов
/ 05 марта 2019

У меня есть две таблицы.Одна таблица имеет список из 500 столбцов.Другая таблица ссылается на каждое имя столбца, как это

Select Top 1 * from MyReferenceTable

, которое возвращает результаты

(69, 'FirtName', 1, NULL)
(69, 'LastName', 2, NULL)

Где «FirstName» - это имя столбца из фактической таблицы.

Таким образом, я хочу заполнить эту справочную таблицу именами столбцов из другой таблицы, как это такидентичность в sequentialOrder как ColumnOrder?

Чтобы вручную ввести оператор вставки для более чем 500 столбцов, потребуется много лун.

1 Ответ

1 голос
/ 05 марта 2019

Это ужасная идея, но ответ на ваш вопрос прост:

INSERT INTO MyReferenceTabel (FileId, ColumnName1, ColumnOrder, DefaultValue)
    SELECT 69, [name], [column_id], NULL
      FROM sys.columns 
     WHERE [object_id] = OBJECT_ID('MyOtherTable')

В основном вы создаете оператор SELECT, который возвращает нужные значения, а затем просто добавляете оператор INSERT поверхэто.

Но опять же, это пахнет ужасным выбором дизайна, который в конце концов укусит вас.Но все же хорошо знать, как получить эту информацию, поэтому я публикую этот пример здесь.

...