2010-05-31 4 views
1

Я знаю, как создать строку в таблице B для каждой строки в таблице A:SQL Server создать строку в таблице B для каждой строки в таблице А и поместить идентификатор в таблице A

INSERT INTO [dbo].[TableB] SELECT 0, 5, 3, [TableAColumn] FROM [dbo].[TableA] 

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

[Редактировать] Я забыл упомянуть, что есть 3 идентификатора TableB, на которые ссылается TableA, поэтому я не могу просто сделать идентификатор TableB таким же, как TableA. Я думал найти максимальный ID таблицы и смещать второй и третий идентификаторы TableB на макс и два раза больше. Проблема в том, что я не знаю, как сохранить это максимальное значение между запросами.

[Edit2] Я думаю, что у меня есть ответ, TableB будет полностью пуст в начале этого, поэтому, если я сортирую таблицу A в инструкции INSERT SELECT выше, записи, вставленные в TableB, должны быть в такой же заказ. Затем я могу вставить новые ID в TableA, сохраняя все отсортированные по идентификатору.

+0

Опубликовать пример данных и ожидаемый результат. –

ответ

0

Вы всегда можете назначить идентификаторы TableB самостоятельно и вставить их в TableB. Другими словами, не позволяйте MySQL выбирать идентификаторы для вас.

+0

См. Редактирование, которое я только что добавил – ScottyDoesKnow

+0

MySQL или SQL Server? OP использовал тег * sql-server *. =) –

+0

LOL! Все SQL - это MySQL! ;) – barrycarter

Смежные вопросы