Как сгенерировать серийные номера для каждого внешнего ключа и вставить их в другую таблицу?
Как я могу сгенерировать серийный номер для каждого refno нет и вставить их в другой
(таблица Б) .Номер накладной будет генерировать на основе таблицы Б (макс()+1 из таблицы B) ? MS SQL 2012.
Table A packname refno ----------------------------------- ----------- Demo 250 Channels 1 qqq 1 qqq 3 qqq 3 Demo 250 Channels 1 Demo 250 Channels 1 Result I want Table B packname refno InvoiceNo ----------------------------------- -------------------- Demo 250 Channels 1 1 qqq 1 2 qqq 1 3 qqq 3 1 Demo 250 Channels 3 2 Demo 250 Channels 5 1
Что я уже пробовал:
Выберите packname, refno,
ROW_NUMBER () OVER (PARTITION BY refno ORDER BY (SELECT 1)) InvoiceNo
Из Табл. 1
Этот процесс выполняется каждый день и извлекает некоторую запись и вставляет в таблицу 2, так что когда мы вставляем в таблицу 2 первый раз, то это нормально, но когда мы запускаем это во второй раз, то он генерирует дубликат номера
The Praveen Singh
использовать временную таблицу с автоматическим колонн личности
Tomas Takac
В вашем примере есть разница в refno между таблицами A и B. второе "ORDER BY (SELECT 1)" выглядит очень подозрительно - вы должны использовать реальный столбец, возможно, какое-то поле datetime. Наконец, я не понимаю, как это должно работать. Вы вставляете из A В B и генерируете InvoiceNo. Но что происходит с записями в A, удаляются ли они, и в следующий раз вы вставляете только недавно добавленные записи с момента последнего запуска? Или А и В имеют одну и ту же дату, за исключением счета-фактуры, конечно?