sql server добавляет строку с теми же записями, кроме ID

#sql #sql-server

#sql #sql-server

Вопрос:

Мой код выглядит следующим образом «

 select * into tbltemp
       from table1 where ID='12345'

               update tbltemp set ID='54321'where ID='12345'


         insert into table1 
               select * from tbltemp where ID='54321'

    drop table tbltemp
  

При выполнении вставки в запрос я получил сообщение об ошибке «Ошибка вставки: имя столбца или количество предоставленных значений не соответствует определению таблицы».

Интересно, как я могу с этим справиться?

В моей таблице1 50 столбцов с тремя вычисляемыми столбцами.

Спасибо за совет!

Ответ №1:

table1 и tbltemp должны совпадать по количеству столбцов. Вы должны явно назвать столбцы, не используйте * вход insert into from select, если количество столбцов не совпадает.

Комментарии:

1. Я думаю, что мое количество столбцов совпадало. Спасибо!

Ответ №2:

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

Ответ №3:

Вы не можете вставить вычисляемый столбец. Вам необходимо выбрать определенные поля в операторах select и value(). Нет выбора *