Нужен SQL для переноса записей из одной таблицы в другую - PullRequest
0 голосов
/ 03 апреля 2011

Вот ситуация.У меня есть 2 таблицы схемы:

ID |COMPANY_NAME |DESC |КОНТАКТ

ID |COMPANY_ID |X_COORDINATE |Y_COORDINATE

Первая таблица содержит список компаний и координаты вторых контактов компаний, как упомянуто.

Дело в том, что я хочу объединить данные в этой таблице с данными в другойнабор таблиц, которые уже имеют данные.Другие таблицы имеют аналогичную структуру, но уже заполнены данными.Идентификаторы являются автоинкрементными.

ТАК, если у нас есть, скажем, компании, отмеченные 1-1000 в таблице 1, и компании, отмеченные 1-500 в таблице 2. Нам нужно объединить их так, чтобы идентификатор номер 1 в таблице 2 стал идентификатором 1001, когдаперенесли на другой стол.Наряду с этим мы также хотели бы перенести записи в таблицу координат так, чтобы они сопоставлялись с новыми идентификаторами таблицы.Можно ли это сделать в SQL или мне нужно прибегнуть к использованию скрипта здесь для такой работы.

1 Ответ

2 голосов
/ 03 апреля 2011

Я не уверен, что понимаю, сколько там таблиц и кто таблицы 1, 2, но проблема довольно ясна.я думаю, что простой способ:

сделать резервную копию всей базы данных, прежде чем начать этот процесс

добавить столбец в таблицу назначения, который будет содержать исходный идентификатор.

insertвсе записи, которые вы хотите объединить (источник) в таблицу назначения, поместив исходный идентификатор в столбец, который вы добавили.

теперь вы можете обновить данные Geo X, Y, используя старый идентификатор

после того, как все будет сделано, и вы можете удалить исходный столбец идентификатора.

РЕДАКТИРОВАТЬ: в ответк вашему комментарию я добавлю сюда код, так как он более читабелен.

адаптировано из SQL Books Online: вставьте строки из другой таблицы

INSERT INTO MyNewTable  (TheOriginalID, Desc)
       SELECT ID, Desc
       FROM OldTable;

Затем вы можете обновитьновая таблица основана на значениях из старой таблицы, например:

UPDATE MyNewTable SET X = oldTable.X , Y = oldTable.Y where
FROM MYNewTable inner JOIN OldTable ON MYNewTable.TheOriginalID = OldTable.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...