имя или номер столбца ... не соответствует определению таблицы в таблице, созданной сценарием create. Ошибка при отображении строк из одной таблицы в другую - PullRequest
0 голосов
/ 16 мая 2018

У меня есть две идентичные таблицы в разных экземплярах сервера. Один сервер является производственным, а другой - для тестирования. Таблицы тестирования были созданы с использованием сценариев, созданных в студии управления SQL (щелкните правой кнопкой мыши таблицу -> таблица сценариев как -> Создать). Для перемещения тестовых данных я использую связанный сервер и следующий код:

set identity_insert <Server>.<DB>.<schema>.<SomeID> ON
insert into <Server>.<DB>.<schema>.<TestTb>
select top 100 * from <Server>.<DB>.<schema>.<ProdTB>
set identity_insert <Server>.<DB>.<schema>.<SomeID> OFF

Вышеописанное сработало для пары таблиц, которые я создал. В последнем я получаю, что « имя столбца или количество предоставленных значений не соответствует определению таблицы в таблице, созданной сценарием создания » error.i проверил параметры сортировки столбцов, и все в порядке.

Единственное отличие, которое у меня есть, состоит в том, что я не создал все индексы, найденные в рабочей среде, но я не думаю, что это вызывает ошибку.

Я работаю на Sql server 2008.

1 Ответ

0 голосов
/ 16 мая 2018

Всегда указывает список столбцов в операторах вставки, а при вставке ... выберите его всегда нужно указывать дважды - как в предложении insert, так и в предложении select.

Кроме того, SQL Server выдаст ошибку, если вы используете set identity_insert on без явного указания списка столбцов в предложении insert, поэтому даже если вы все столбцы получили в правильном порядке, вы все равнов этом случае вы получите ошибку.

Для получения дополнительной информации прочитайте Аарона Бертранда «Плохие привычки к удару»: ВЫБРАТЬ или ВСТАВИТЬ без списка столбцов , на который Шнуго ссылается в своем комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...