Я перезаписываю базу данных MS Access на SQL-сервер и обнаружил странную проблему в Access, с которой, я надеюсь, кто-то может помочь.
У меня есть таблица, назовем ее «Главная» с первичным ключом учетной записи, который проиндексирован и не допускает дубликатов.Кажется достаточно простым, но моя проблема возникает, когда данные вставляются.
Мой запрос INSERT (количество полей было ограничено для краткости)
INSERT INTO Main (Account, SentDate, Amount)
SELECT C.Account, C.SentDate, C.Amount
FROM
(CALLS C LEFT JOIN Bals B ON C.Account = B.ACCT_ID)
LEFT JOIN AggAnt A ON C.Account = A.Account
Проблема заключается в том, еслиЯ выполняю часть запроса SELECT
, получаю 2365 записей, но когда я запускаю INSERT
, я получаю 2364 записи.Поэтому я проверил некоторые данные и обнаружил, что одна учетная запись дублирована, разница между записями - SentDate и Amount.Но Access вставляет только одну из записей и не выдает никаких сообщений об ошибках или чего-либо еще.В запросе ничего не говорится о выборе самой последней даты и т. Д.
Образцы данных:
Account SentDate Amount
12345678 8/1/2011 123.00
23456789 8/1/2011 45678.00
34567890 8/1/2011 7850.00
45678912 8/1/2011 635.00
45678912 5/1/2011 982.00
56789123 8/1/2011 2639.00
В примере у меня есть одна учетная запись, которая дублируется 45678912 при запуске INSERTЯ не получаю ошибок, и я получаю запись от 01.08.2011.
Почему Access не выдает ошибку, когда это нарушает PK на столе?Есть ли какая-то особенность в Access, чтобы выбрать одну запись и просто пропустить другую?
Я полностью озадачен этой проблемой, поэтому любая помощь будет полезна.