Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

Обновление БД Access   Найти похожие ветки 

 
DimonS ©   (2007-02-14 09:36) [0]

Доброго дня всем, и с праздником тоже :)

Такой вопрос возник при обновлении таблиц Access, находящихся в разных mdb-файлах.

Пишу такой запрос.

INSERT INTO Autos (Code, Number1, Number2, StateNo, BoxNo, Model ) IN "D:\Dispatcher.mdb"
SELECT Code, Number1, Number2, StateNo, BoxNo, Model
FROM Autos AS AA IN "D:\BD\Dispatcher.mdb";


Запрос выполняется, нормально. Но здесь поле Code ключевое, и изменять его нельзя, т.е. если в первой таблице есть такой номер записи, то ее нужно пропустить, не вставлять. Если дописать в конце запроса:

WHERE Code<>AA.Code,

то не вставляется вообще ни одна запись, даже если такой и нет в таблице.
Как обойти такой трабл? Перебором записей в выборке не особо хочется делать, одним запросом в любом случае намного быстрее выполняется.


 
Sergey13 ©   (2007-02-14 09:42) [1]

Селективный запрос не видит вставляемую таблицу. Надо отсеивать ненужные в самом селективном запросе отдельно, например с помощью exists.


 
Sergey13 ©   (2007-02-14 09:44) [2]

> не видит вставляемую таблицу.

в смысле ту в которую идет вставка


 
DimonS ©   (2007-02-14 10:50) [3]


> Sergey13 ©   (14.02.07 09:42) [1]


> Надо отсеивать ненужные в самом селективном запросе отдельно,
>  например с помощью exists.


А как можно отсеить их? Или перед вставкой нужно сравнить обе таблицы друг с другом и выбрать нужные для вставки записи? Тогда как это сделать? Вряд ли, наверное, одним запросом можно сделать и сравнение и вставку?


 
Sergey13 ©   (2007-02-14 10:59) [4]

> [3] DimonS ©   (14.02.07 10:50)

INSERT INTO Autos (Code, Number1, Number2, StateNo, BoxNo, Model ) IN "D:\Dispatcher.mdb"
SELECT Code, Number1, Number2, StateNo, BoxNo, Model
FROM Autos AS AA IN "D:\BD\Dispatcher.mdb";
WHERE not exists (select 1 from Autos IN "D:\Dispatcher.mdb" A1 where A1.Code<>AA.Code)

Как то так.
С синтаксисом аксеса не дружу. 8-)



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
11-1158821369
avs
2006-09-21 10:49
2007.05.06
KolListView


15-1176086186
Slider007
2007-04-09 06:36
2007.05.06
С днем рождения ! 7 апреля


1-1173285225
DevilDevil
2007-03-07 19:33
2007.05.06
компонент TScrollBox


1-1173598733
RWolf
2007-03-11 10:38
2007.05.06
передача PChar в DLL


2-1176454419
ALS
2007-04-13 12:53
2007.05.06
Access и региональные настройки