Главная страница
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.028 c
15-1175797825
alexsis
2007-04-05 22:30
2007.05.06
Безобразие!


15-1176068520
SerJaNT
2007-04-09 01:42
2007.05.06
Компьютер не включается


15-1175983275
Иксик
2007-04-08 02:01
2007.05.06
"До чего дошел прогресс" (с)


2-1176558179
Romm
2007-04-14 17:42
2007.05.06
help meee


15-1175862979
palva
2007-04-06 16:36
2007.05.06
Пятница. Невезучая теорема Стюарта.