Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Вниз

Обновление ряда таблиц БД из другой БД СУБД SQL Server 2005   Найти похожие ветки 

 
Kostafey ©   (2007-11-13 22:58) [0]

Существовала БД, была сделана ее копия.

Затем в структуру копии БД были внесены
некоторые изменения.
Однако, в течение этого времени в оригинал БД
продолжали вноситься данные (данные вносились
в таблицы той части БД, структура которых не
подвергалась изменениям).

Теперь необходимо привести данные копии БД
к актуальному состоянию. Т.е. чатсть данных
из ряда таблиц оригинальной БД обновить, ряд данных
добавить.

Как лучше всего это сделать?


 
Anatoly Podgoretsky ©   (2007-11-13 23:00) [1]

> Kostafey  (13.11.2007 22:58:00)  [0]

Лучше всего через UPDATE


 
Kostafey ©   (2007-11-13 23:02) [2]

> [1] Anatoly Podgoretsky ©   (13.11.07 23:00)
> > Kostafey  (13.11.2007 22:58:00)  [0]
>
> Лучше всего через UPDATE

А как определить какие данные были вновь
внесены (т.е. дбавлены новые записи) и какие
только изменнены?


 
Anatoly Podgoretsky ©   (2007-11-13 23:10) [3]

> Kostafey  (13.11.2007 23:02:02)  [2]

Изучить T-SQL в части JOIN, INSERT, UPDATE и WHERE
Придется написать два независимых запроса.


 
Anatoly Podgoretsky ©   (2007-11-13 23:11) [4]

Другой вариант, а насколько некоторые изменения., может проще эти некоторые изменения сделать на копии 1, чем пытаться синхронизировать, думаю проще, особенно если заранее подготовить скрипт.


 
Kostafey ©   (2007-11-13 23:18) [5]

> [3] Anatoly Podgoretsky ©   (13.11.07 23:10)
> > Kostafey  (13.11.2007 23:02:02)  [2]
>
> Изучить T-SQL в части JOIN, INSERT, UPDATE и WHERE

Да вроде знаю я SQL немного.
Просто никогда не писал запрос
для 2-х БД одновременно (всегда
работал только с одной базой).


> Придется написать два независимых запроса.

Понял.


> [4] Anatoly Podgoretsky ©   (13.11.07 23:11)
> Другой вариант, а насколько некоторые изменения., может
> проще эти некоторые изменения сделать на копии 1, чем пытаться
> синхронизировать, думаю проще, особенно если заранее подготовить
> скрипт.

Да, я про это уже думал.
Я даже сначала так и хотел сделать, но
потом выяснилось что один злой пользователь
удалил некоторые данные из другой части оригинальной
БД. Ну да, еще есть бэкап, но у меня он не с собой.

Да и изменнения в структуре копии были такие,
что повторить их уже вряд ли получиться.


 
Anatoly Podgoretsky ©   (2007-11-13 23:20) [6]

> Kostafey  (13.11.2007 23:18:05)  [5]

db.owner.table


 
Kostafey ©   (2007-11-13 23:30) [7]

> db.owner.table

Дак я вроде так и пишу.
Вот простейший запрос:

UPDATE Dor.dbo.POJ_POEZD
  SET Dor.dbo.POJ_POEZD.Station = Dor_Last.dbo.POJ_POEZD.Station
Where Dor.dbo.POJ_POEZD.Cod_disl = 228


а он мне:
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "Dor_Last.dbo.POJ_POEZD.Station" could not be bound.


 
Anatoly Podgoretsky ©   (2007-11-13 23:36) [8]

> Kostafey  (13.11.2007 23:30:07)  [7]

Наверно надо алиас применить. И ты пропустил мои слова про JOIN
Кроме того советую подготовиться с вопросом и задать его на sqlru.microsoft-sql-server
Там есть очень опытные спецы по SQL Server


 
Kostafey ©   (2007-11-14 00:08) [9]

Во как извернулся :)

UPDATE Dor.dbo.POJ_POEZD
  SET Dor.dbo.POJ_POEZD.Station =
(select Dor_Last.dbo.POJ_POEZD.Station
from Dor_Last.dbo.POJ_POEZD
where Dor_Last.dbo.POJ_POEZD.Cod_disl = 228
)
where Dor.dbo.POJ_POEZD.Cod_disl = 228


 
Kostafey ©   (2007-11-14 00:14) [10]

Для общего случая:

UPDATE Dor.dbo.POJ_POEZD
SET Dor.dbo.POJ_POEZD.Station=(
select Dor_Last.dbo.POJ_POEZD.Station
from Dor_Last.dbo.POJ_POEZD
where Dor_Last.dbo.POJ_POEZD.Cod_disl in (select Dor.dbo.POJ_POEZD.Cod_disl)
)
WHERE Dor.dbo.POJ_POEZD.Cod_disl in
(select Dor.dbo.POJ_POEZD.Cod_disl)



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.108 c
15-1195313211
IvanJ
2007-11-17 18:26
2007.12.16
Аналог из C++ в Delphi


15-1194872068
XRMiPO
2007-11-12 15:54
2007.12.16
Копирование самого себя


3-1186531907
NovaC
2007-08-08 04:11
2007.12.16
драйвер ORACLE для ADO


15-1195105781
ZeroDivide
2007-11-15 08:49
2007.12.16
Требования к ПО для обеспечения совместимости с Vista


11-1181309742
heilong
2007-06-08 17:35
2007.12.16
проблема с LVItemHeight в TKOLListView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский