2013-12-02 4 views
0

Я знаю, что это было опубликовано раньше, но я не уверен, что у меня есть голова вокруг логики, позволяющей aloan пытаться подключить JET Friendly Syntax.SQL UPDate та же таблица

Вот что я пытаюсь сделать

У меня есть куча записей, которые относятся к документам, и я планирую на переименование документы с GUID-х, однако некоторые записи указывают на тот же документ здесь лежит проблема.

Таблица ID, LegacyFullPathNme, GUID, isDuplicate

мой код перебирает и присваивает каждой записи по GUID. то я хочу, чтобы обновить дубликаты документов записи с одинаковым GUID

ниже мой хэш на него, но не работает «В операции должен использоваться обновляемый запрос

UPDATE [IO Documents] a 
set a.codedFileName = (SELECT B.codedFileName 
         FROM [IO Documents] b 
         WHERE b.LegacyFullPathName = a.LegacyFullPathName) 

В настоящее время использовать макрос, чтобы пойти бросить RBAR

+0

возможно дубликат [Операции должны использовать обновляемый запрос. (Ошибка 3073) Microsoft Access] (http://stackoverflow.com/questions/170578/operation-must-use-an-updatable-query-error-3073-microsoft-access) – Mack

ответ

1

Я немного запутался, почему вы могли бы сделать это таким образом, так как теперь ваш глобально уникальный идентификатор столбца не является уникальным в том, что несколько строк будет иметь.

Я думаю, что лучший метод был бы просто создайте новую таблицу из своего старого остроумия h строка для каждого пути к файлу.

SELECT LegacyFullPathNme 
INTO newtable 
FROM oldtable 
GROUP BY LegacyFullPathNme; 

, а затем добавить указатель в новый стол впоследствии. (обратите внимание, что я не тестировал этот фрагмент sql, чтобы, возможно, не был надлежащим синтаксисом, но я думаю, что он имеет смысл).

+0

спасибо, что это действительно приятное решение, и после прочтения я понятия не имею, как я сделал это слишком сложным. – Robbo

+0

Нет проблем. Иногда проблема просто нуждается в новом наборе глаз. Удачи. – Steven

1

Я считаю, что вы ищете что-то вроде этого:

UPDATE [IO Documents] SET 
codedFileName = DMin("codedFileName","IO Documents","LegacyFullPathName='" & LegacyFullPathName & "'") 
Смежные вопросы