Я хочу скопировать записи нескольких сотрудников из одной компании в другую более крупную. Если возникает конфликт с первичным ключом, запись должна быть заменена. Для Delphi DataSet есть команды «Вставить», «Добавить», «Изменить» и «Удалить», но есть ли простой способ «Заменить» запись между одними и теми же таблицами, не зная полной структуры таблицы или первичных ключей? Есть 30 полей, и они могут быть изменены в будущем.Как заменить записи на другой набор данных?
В MySQL это было бы REPLACE INTO table2 (SELECT * FROM table1)
, но я хотел изменить несколько полей в целевой таблице, например, идентификатор сотрудника и коды отделов.
Обычно я бы рекомендовал компонент FireDAC BatchMove с режимом, установленным в dmAppendUpdate, но поскольку вы, похоже, застряли с Delphi 7, это, вероятно, не помогает. –
@UweRaabe Я уже придумал решение, но BatchMove кажется интересным, потому что я использую MyDAC, и есть компонент CRBatchMove. Можете ли вы показать мне пример использования BatchMove? –