Главная страница
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.023 c
2-1176473314
АлексейМ
2007-04-13 18:08
2007.05.06
TDBComboBox


1-1173699862
Empleado
2007-03-12 14:44
2007.05.06
Простенький вопрос по thread safe реализации


2-1176295679
Ezorcist
2007-04-11 16:47
2007.05.06
Отреагировать на ошибку 10061 TClientSocket-a


11-1156441224
NORDmen
2006-08-24 21:40
2007.05.06
нужно сделать zip архив из kol программы


8-1156051015
Jimmy
2006-08-20 09:16
2007.05.06
Создание и использование 256-цветной палитры