#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(). Нет выбора *