Можно ли обновить локальную таблицу значениями из связанной таблицы? - PullRequest
1 голос
/ 10 января 2020

У меня есть две идентичные таблицы в моей базе данных, T1 и T2. T1 - это локальная таблица, а T2 - это связанная таблица из действующей базы данных SQL. На данный момент две таблицы идентичны.

Короче говоря, я хотел бы иметь возможность выполнить запрос, который будет обновлять T1, будут ли все новые записи, которые были добавлены в T2. Поэтому после выполнения запроса две таблицы снова должны быть идентичными. Это вообще возможно? Мне нужно, чтобы данные в T1 были доступны локально, поскольку мне нужно иметь возможность запрашивать эту таблицу, даже если данные в T2 недоступны. База данных SQL, о которой идет речь, находится за пределами сайта, поэтому я не всегда смогу выполнить свои запросы, поскольку ссылка ненадежна.

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 10 января 2020

Если у вас есть уникальный идентификатор для каждой записи и вы уверены, что уже введенные записи никогда не будут изменены, на самом деле это может быть довольно просто:

INSERT INTO [TBL_INVOICES_LOCAL]
SELECT TBL_INVOICES.*
FROM [TBL_INVOICES_LOCAL] RIGHT JOIN TBL_INVOICES ON [TBL_INVOICES_LOCAL].InvoiceID = TBL_INVOICES.InvoiceID
WHERE ((([TBL_INVOICES_LOCAL].InvoiceID) Is Null));

Все, что вам нужно сделать, это объединить две таблицы с устанавливается отношение:

Включить ВСЕ записи из LINKED_TABLE и только записи из LOCAL_TABLE, где объединенные поля равны.

Установка критериев для поля ID локальных таблиц в «Is Null» будут отображаться только отсутствующие записи. Если вы сделаете это в запросе на добавление, вы сможете обновить свою таблицу только в одном запросе, как показано ниже:

Demo Image

...