Главная страница
    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.058 c
15-1195018398
@!!ex
2007-11-14 08:33
2007.12.16
Контрольная сумма


2-1195104845
Lebedev
2007-11-15 08:34
2007.12.16
Как обычный компонент показать поверх созданного динамически?


15-1194910495
guard_gg
2007-11-13 02:34
2007.12.16
Кто знает си++? Помогите пожалуйста. Совсем простой вопрос.


15-1195131674
Александр Павлов
2007-11-15 16:01
2007.12.16
Орешник


15-1195061016
kernel
2007-11-14 20:23
2007.12.16
создал программу, "продвинул"... что дальше?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский