Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
2-1176443674
vitv
2007-04-13 09:54
2007.05.06
DBGrid-блокировка ввода текста с клавиатуры


15-1176228607
dr_alex87
2007-04-10 22:10
2007.05.06
Help ME PLEASE !!!


3-1171476660
.koT
2007-02-14 21:11
2007.05.06
Paradox 7


2-1176549694
Fantasy
2007-04-14 15:21
2007.05.06
C: Documents and Settings в C: Docume~1 как перевести ?


2-1176794298
Johnmen
2007-04-17 11:18
2007.05.06
Булева алгебра. Разминка.




   Наверх