Ваш оператор insert предполагает, что таблица результатов содержит только один столбец, в который необходимо вставить данные. Это вряд ли будет истинным, если в таблице уже были другие столбцы, прежде чем вы выполнили команду ADD COLUMN.
Вам нужно будет отслеживать столбцы в таблице результатов и предоставлять данные (или значение по умолчанию) для каждого столбца.
Довольно необычно расширять структуру таблицы изнутри приложения. Что вы пытаетесь достичь? Вы уверены, что не можете добиться этого лучше, указав фиксированные таблицы и затем добавив данные из своего приложения?
UPDATE
Хорошо, я думаю, я понимаю, что вы описываете. На первой итерации ALTER TABLE создает первый столбец. INSERT добавляет кучу строк, которые имеют данные в этом первом столбце.
Во втором взаимодействии ALTER TABLE создает вторую колонку. INSERT создает целую кучу новых строк, но заполняется только второй столбец. Первый столбец - все NULL, потому что вы не указали для него значения. И так далее и т. Д. Для третьей и последующих итераций.
Если ваше намерение состоит в том, чтобы дублировать исходную таблицу и ее данные, вы должны создать таблицу результатов за один проход. Вы знаете структуру столбцов, не так ли? Используйте оператор CREATE TABLE. Затем напишите одно заявление INSERT примерно следующим образом:
INSERT INTO [results]
([field1_result], [field2_result], [field3_result])
SELECT [Result] As
[field1_result, [field2_result], [field3_result]]
FROM [newtable]
Это вы имеете в виду?
[Должен ли я ставить метки в моем названии вопроса] (http://meta.stackexchange.com/questions/19190/should-questions-include-tags -в-их-титры). Нет, не стоит. – phadaphunk
В чем проблема? (Вы описываете «решение», которое не работает. Вместо этого вы должны описать реальную проблему.) –
Я упомянул, что .. данные в столбцах, которые добавляются после начала предыдущих столбцов, заканчиваются.Я хочу, чтобы все они начинались в верхней части – gta0004