|
|
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
Подскажите, существует ли функция или инструмент, который определяет все отличия между двумя таблицами, имеющими ключевые поля и выдающиая(ий) отличие в удобной для дальнейшей обработки форме (новые записи, отсутствующие записи, скорректированные записи и какие поля и их значения).Необходимо внести все изменения из одной таблицы в другую и при этом получить информацию о различих для дальнейшего анализа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 08:51 |
|
||
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
на www.red-gate.com зайди, там пакет sql server compare есть. Это то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 09:20 |
|
||
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
Boris!Чтобы "внести все изменения из одной таблицы в другую" достаточно очистить первую и добавить все записи из второй (напр.select into).Насчет анализа чуть позже...Обед started... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 09:23 |
|
||
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
Спасибо за внимание. Вариант удаления всех записей у себя и добавления затем из исходной таблицы(таблиц) только по определенным значениям ключа я сейчас как раз и делаю. Изменения возможны только в исходных таблицах. Мне конечно необходимо произвести сравнение в некоторых случая, но я ищу поддержку в решении делать полное копирование. 1. Время выполнения. Если объем отбираемых записе например 5 млн, а полная база например 100 млн объем изменененных и новых записей составляее 5 тысяч, то я не думаю, что сравнение и внесение только корректировок будет значительно быстрее, чем полное копирование, хотя не уверен - при удалении: Truncate и DTS (select... into...), - при корректировке тот же объем Select + Select из результирующей таблицы и далее полное их сравнение с получением таблицы задания для корректировки и далее внесение изменений. Объем внесения изменений конечно небольшой. 2. Точность данных. Всегда исходные данные верны и надежны. Поэтому результат всегда равен полному копированию, а сравнение только для протокола. В случае отсутствия в исходных таблицах информации за старый период времени, то на основании сравнения информация из результирующих таблиц будет удалена и для предотврашения этого все равно придется добавлять контроль или создавать таблицу старых неизменяемых данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 10:24 |
|
||
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
При таком соотношении объёмов лучьше завести в нужных таблицах поле timestamp. Алгоритм: 1. Берём из БД сохранённое значение этого поля для последнего переноса. 2. Берём из таблиц текущее максимальное значение этого поля. 3. Переносим все записи со значением поля "между" 4. Сохраняем в БД значение этого поля. Всё это - в транзакции, с обработкой ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 12:15 |
|
||
|
Сравнение всех полей 2-х таблиц с учетом ключевых полей
|
|||
|---|---|---|---|
|
#18+
timestamp не подойдет, так как он в исходной базе отсутствует, а ввести я не могу так как это чужие данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 12:50 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32030918&tid=1822638]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 465ms |

| 0 / 0 |
