2013-11-21 2 views
1

Я пишу хранимую процедуру SQL, которая должна перемещать строки от Table0 до Table1. Table1 имеет схему, которая точно такая же, как схема Table0, за исключением того, что имеется дополнительный столбец INT, называемый DataIndex. Значение, которое нужно вставить в этот столбец, вычисляется в начале процедуры. Предположим, что для обсуждения всегда 100.Как перенести строки из одной таблицы SQL в другую таблицу SQL с дополнительными столбцами?

Я написал следующий SQL, чтобы попытаться сделать это:

INSERT INTO Table1 
SELECT *, 100 AS INT_COLUMN_VALUE 
FROM Table0; 

Когда я запускаю этот код, я получаю следующее сообщение об ошибке: Invalid имя объекта «INT_COLUMN_VALUE».

Как это сделать? Моя база данных работает под управлением MS SQL Server 2008.

+1

просто удалить имя столбца - 'INT_COLUMN_VALUE' из вашего кода, и попытаться запустить его, вы, вероятно, не имеют столбец с именем' INT_COLUMN_VALUE' –

+0

Я не думаю, что вы должны указать имя столбца, когда делая вставку. Что еще более важно, вы должны только убедиться, что вы выбираете то же количество столбцов, что и то, что входит в таблицу (если вы не укажете столбцы как часть команды вставки). –

+0

Ooops, я только что понял, что в моем реальном коде я опечатал имя одной из моих таблиц –

ответ

0

Я хотел бы использовать имя столбца, чтобы убедиться, что земли данных в правой колонке, делая что-то вроде этого ..

INSERT INTO Table1 (Column1,Column2,Column3,.....Int_Column) --<--- Int Column in destination table 
SELECT Column1,Column2,Column3,..... CAST(Col4 AS INT)  --<--- Computed column Cast as int 
FROM Table0; 

И вам не нужно давать псевдоним в столбец INT, просто убедитесь, что вы указали все столбцы в инструкции INSERT INTO и SELECT столбцы, используя имена столбцов в правильном порядке, как вы упомянули в инструкции INSERT INTO.

0
  • Удалить имя столбца - INT_COLUMN_VALUE из вашего кода, и попробуйте запустить его (вы, вероятно, не имеют столбец с именем INT_COLUMN_VALUE).
  • Вам не нужно указывать его в инструкции select.
  • Желательно указать имена столбцов в инструкции insert.
Смежные вопросы