Пытается вставить в новую таблицу, но видит «Не удалось найти выходную таблицу» - PullRequest
0 голосов
/ 22 октября 2019

У меня есть серверная часть SQL и клиентская часть Access. Таблица SQL обновляется ежедневно, однако раз в неделю (или всякий раз, когда я запускаю этот запрос), мне нужно экспортировать все изменения в новую таблицу (загрузить), где данные не соответствуют статической таблице, которая у меня есть. Таким образом, в основном я пытаюсь дедуплицировать живую таблицу (MSTR-SENT) со статической таблицы (дедупликация).

Когда я запускаю этот запрос (определение данных для таблицы с чернилами в Access), я получаю сообщение об ошибке «Не удалось найти выходную таблицу« upload »». Это правильно, так как он не существует, я просто хочу создать новую таблицу с дедуплируемым содержимым (загрузка).

INSERT INTO [upload]
  (company, [new-ind], [address], [state], city, zip, stext)
SELECT de.company,
       de.[new-ind],
       de.[address],
       de.[state],
       de.[city],
       de.[zip],
       de.stext
  FROM [MSTR-SENT] de
 WHERE NOT EXISTS(SELECT website, company, zip
                    FROM dedupe d2
                   WHERE d2.website = de.website OR d2.company = de.company OR d2.zip = de.zip)

Как бы это работало, чтобы оно вставлялось в новую таблицу и не 'не выдать эту ошибку?

1 Ответ

1 голос
/ 22 октября 2019

Оператор INSERT INTO ... должен ссылаться на таблицу, в которой существует . Если вы хотите создать таблицу, используйте оператор INSERT...SELECT...INTO...:

SELECT de.company,
       de.[new-ind],
       de.[address],
       de.[state],
       de.[city],
       de.[zip],
       de.stext
  INTO dbo.upload
  FROM [MSTR-SENT] de
 WHERE NOT EXISTS(SELECT website, company, zip
                    FROM dedupe d2
                   WHERE d2.website = de.website OR d2.company = de.company OR d2.zip = de.zip)

Конечно, поскольку вы должны ожидать, вышеприведенное произойдет, если таблица upload существует. Но если это так, и таблица будет эффективно работать в «подвешенном состоянии» (иногда там, иногда нет), то, похоже, у вас есть более фундаментальный недостаток в дизайне, и вы показываете, что перестали опускать таблицу и использовали существующий INSERT INTO у вас есть.

Если все просто, потому что вы хотите, чтобы таблица сначала была "пустой", то TRUNCATE таблица upload сначала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...