У меня есть две таблицы A и B с 30 столбцами (одинаковые имена переменных, данные за разные годы), без первичного ключа, почти миллион записей в каждой.
Я хочу сравнить A.X1
с B.X1
(nvarchar8
, содержит пробелы, -, буквы и цифры) и вставить результаты внешнего соединения в другую таблицу C (с теми же 30 столбцами), чтобы у меня были все строки A и где B!=A на B .Х1).
Пример:
Таблица А
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
13 S 5 NULL
14 D T NULL
Таблица Б
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
15 R2 56 NULL
16 R1 T1 NULL
Результирующая таблица C
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
13 S 5 NULL
14 D T NULL
15 R2 56 NULL
16 R1 T1 NULL
Как я это сделал.
Я старался
INSERT INTO C
SELECT *
from A
full outer join B
on A.X1 = B.X1
Ошибка, которую я получаю
Сообщение 213, уровень 16, состояние 1, строка 1
Ошибка вставки: имя столбца или количество предоставленных значений не соответствует определению таблицы.
Я создал C, который в настоящее время пуст.
INSERT
, чтобы избежать каких-либо неожиданностей и проблем! - person marc_s   schedule 01.08.2013