Форум: "Базы";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Вниззапрос на обновление Найти похожие ветки
← →
pavel_guzhanov © (2005-10-11 13:26) [0]Здравствуйте.
Имеется база данных InterBase, IBQuery имеет свойство SQL: Select name from personal.
Имеется база MSSQL Server. В этой базе тоже есть таблица Personal. Мне надо сделать так, чтобы из таблицы Personal базы MSSQL удалились записи, поле name у которых имеет значения, которых нет в таблице Personal базы InterBase.
Подскажите, как это сделать....
Спасибо.
← →
Desdechado © (2005-10-11 13:31) [1]если таблица ни на что не завязана, то проще убить все и создать те, что есть в IB
← →
Val © (2005-10-11 13:32) [2]укажите для начала компоненты доступа.
← →
pavel_guzhanov © (2005-10-11 13:35) [3]
> то проще убить все и создать те, что есть в IB
Не пройдет, т.к. в MSSQL кроме имени имеются уникальные идентификаторы, которые больше неоткуда взять.
> укажите для начала компоненты доступа
InterBase - IBDatabase и IBQuery
MSSQL - ADOConnection и ADOQuery
← →
Val © (2005-10-11 13:57) [4]Бегаем по НД. То есть, выбираем все name из MSSQL.Personal, бежим по ним в цикле и делаем запросы к IB.Personal с параметром name. Если ничего не возвращает, то посылаем в базу MSSQL запрос на удаление с этим же параметром.
← →
Sergey_Masloff (2005-10-11 14:07) [5]Val © (11.10.05 13:57) [4]
>Бегаем по НД
Да, быстро будет...
pavel_guzhanov © (11.10.05 13:26)
1) Перегоняем интербейзовскую таблицу в MSSQL
2) Делаем закрытый джойн 2 таблиц - "родной" и "интербейзовской"
3) все что не попали в пересечение - грохаем.
← →
pavel_guzhanov © (2005-10-11 14:16) [6]Спасибо
← →
Val © (2005-10-11 17:10) [7]>[5] Sergey_Masloff (11.10.05 14:07)
думаете ваш вариант безусловно быстрее? :)
← →
Sergey_Masloff (2005-10-11 17:30) [8]Val © (11.10.05 17:10) [7]
>думаете ваш вариант безусловно быстрее? :)
Если таблицы большие - 100% быстрее проверено занусси.
Не знаю как для MSSQL для Oracle я добивался ускорения на 2 порядка. Сам бы не поверил пока не попробовал. Пакетная загрузка работает очень быстро, джойн вообще та операция которую SQL сервера делают лучше всего ;-)
← →
msguns © (2005-10-11 17:35) [9]Приходилось делать подобное, и не единожды. Комбинации были разные, от парадокс-интербэйз, до мускул-скала. Пришел к выводу, что лучше "пробежки" по исходному со вставкой (запросами) в целевой нету. За исключением ситуаций, когда надо сделать данную процедуру регулярной.
← →
Val © (2005-10-11 17:38) [10]>[8] Sergey_Masloff (11.10.05 17:30)
Вот видите - все дело в "если". А "если" могут быть еще. Поэтому, думаю, мой вариант имеет права на жизнь не менее вашего и фикать его не гут :)
← →
Sergey_Masloff (2005-10-11 17:49) [11]Val © (11.10.05 17:38) [10]
Ладно договорились. Я и не собирался фикать, честное слово. Просто сегодня целый день на взводе может форму выбрал не лучшую для возражения. В любом случае если вы расценили мой пост типа "мой вариант - шоколадный ваш г..но" то это оценка ошибочная. Я этого не подразумевал.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.303 c