Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Сразу предупреждаю, что я "чайник" в MS SQL Server.

На SQL Server 2008
есть 2 базы с одинаковыми схемами и таблицами, "старая" БД и "новая" (содержит свежую порцию данных).
Задача перенести данные из новой БД,из определённой схемы, в старую БД, в такую же схему
т.е. дополнить старые данные свежей порцией.

Каким методом это лучше сделать?

Список таблиц большой, 2-3 сотни, все они между собой связаны FK, правильный порядок заполнения таблиц, мне, естественно не по зубам, поэтому подозреваю, что надо
1. сначала отключить все FK по списку таблиц,
ALTER TABLE <table_name> NOCHECK CONSTRAINT <FK_name>

2. потом выполнить insert по списку таблиц

3. потом включить FK по списку таблиц
ALTER TABLE <table_name> CHECK CONSTRAINT <FK_name>

Ещё вопрос, некоторые строки в таблицы не будут вставляться, по PK,
что надо в скрипт вставить, чтобы он ошибки игнорировал и продолжал выполняться?
1 окт 14, 14:29    [16644555]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
stdvb
Member

Откуда:
Сообщений: 43
Aliona,

Если операция разовая, то бэкап/ресторе.
1 окт 14, 14:33    [16644592]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
stdvb
Aliona,

Если операция разовая, то бэкап/ресторе.

1.Не разовая, а типовая переодическая.
2. не заменить старые данные новыми, а дополнить. !!!
1 окт 14, 14:39    [16644649]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Настраивайте репликацию.
Зачем велосипед изобретать.
1 окт 14, 14:48    [16644731]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Владислав Колосов
Настраивайте репликацию.
Зачем велосипед изобретать.


Ссылку не кинете.
Или объясните кратко.

Я не изобретаю велосипед, я с MS SQL вообще не знакома
1 окт 14, 14:59    [16644808]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Если не знакомы, то изучайте справку (BOL), подробнее материала не найдёте. Вероятнее всего Вам подойдет Репликация транзакций.
1 окт 14, 16:03    [16645328]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aliona
Я не изобретаю велосипед, я с MS SQL вообще не знакома

Зачем вы тогда беретесь за такие сложные задачи ?
Вы хотите написать свою репликацю ?
1 окт 14, 16:04    [16645338]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
Aliona,

http://msdn.microsoft.com/ru-ru/library/ms151198(v=sql.105).aspx
1 окт 14, 16:10    [16645393]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Glory
Aliona
Я не изобретаю велосипед, я с MS SQL вообще не знакома

Зачем вы тогда беретесь за такие сложные задачи ?


Хороший вопрос.
Я тут сисадминю всё подряд, работаю одна, получила задание.
Вы предлагаете уволиться?
Я предпочитаю скрипт написать.
1 окт 14, 16:38    [16645690]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
StarikNavy
Aliona,

http://msdn.microsoft.com/ru-ru/library/ms151198(v=sql.105).aspx

Репликация - не подходит, у нас она не утановлена, кроме того база-источник всегда новая, каждый раз с нуля делается, в неё данные из оракла заливаются.
1 окт 14, 16:42    [16645734]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Так а что скажите на этот счёт?
автор
1. ALTER TABLE <table_name> NOCHECK CONSTRAINT <FK_name>
2. insert
3. ALTER TABLE <table_name> CHECK CONSTRAINT <FK_name>


с несколькими таблицами уже это проделала
1 окт 14, 16:45    [16645762]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
SERG1257
Member

Откуда:
Сообщений: 2876
Aliona
Ещё вопрос, некоторые строки в таблицы не будут вставляться, по PK,
Проще ограничить из в запросе, добавив типа where not exists (select * from new_table where new_table.pk=old_table_pk), будет лишний сик, но не должно сильно замедлить.
1 окт 14, 17:45    [16646234]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aliona
Хороший вопрос.
Я тут сисадминю всё подряд, работаю одна, получила задание.
Вы предлагаете уволиться?
Я предпочитаю скрипт написать.

Я тут дворником работаю
И мне дали задание ядерный реактор создать.
Вы предлагаете уволиться?
Я предпочитаю закупить ядерное топливо и начать сборку
1 окт 14, 17:48    [16646257]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
автор
база-источник всегда новая, каждый раз с нуля делается, в неё данные из оракла заливаются.


Надо что-то в консерватории подправить... Закат солнца вручную недостаточно продуктивен...
1 окт 14, 18:00    [16646342]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
permstat
Member

Откуда:
Сообщений: 7
Есть специализированный софт от позволяет это делать: заменяйте добавляйте данные из(в) SQL в(из) MS SQL или другую БД (там около 10-15 видов) ... неприятность одна - платная прога ... ну естественно если ручки шаловливые кривоваты (извините не хотел обидеть) то на этом "бульдорезе" можно такое наворотить ... мало не покажется ...а так софт прелесть ...
ESF Database Migration Toolkit http://www.easyfrom.net/
1 окт 14, 18:17    [16646454]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Aliona,

А у вас что, старая база readonly? В нее данные никто не вносит?
1 окт 14, 19:56    [16646884]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Владислав Колосов
автор
база-источник всегда новая, каждый раз с нуля делается, в неё данные из оракла заливаются.


Надо что-то в консерватории подправить...

Всякие задачи бывают, даже такие, с которыми уважаемое сообщество не встречалось.

И не надо меня пугать, не испугаете, не боги горшки обжигают.
2 окт 14, 09:45    [16648334]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Mind
Aliona,

А у вас что, старая база readonly? В нее данные никто не вносит?

С базой никто не работает, она используется только для трансляуии данныз из оракла.
Бэкап базы передаётся заказчику, он её только на чтение использует.
2 окт 14, 09:47    [16648344]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Раз вы ничего сказать не можете, кроме "сама дура", тему закрываю.

Спасибо за внимание. :)
2 окт 14, 09:53    [16648367]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Aliona, с ключами все понятно, а как Вы решаете проблемы связей при вставке новых записей или связь не по identity?

По вопросу, я бы выбрал SSIS пакет
2 окт 14, 09:54    [16648369]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Aliona
Раз вы ничего сказать не можете, кроме "сама дура", тему закрываю.

А "сама дура" знает, что такое DML триггер для таблицы ?
2 окт 14, 09:57    [16648378]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Glory
Я тут дворником работаю
И мне дали задание ядерный реактор создать.
Вы предлагаете уволиться?
Я предпочитаю закупить ядерное топливо и начать сборку

Владислав Колосов
Надо что-то в консерватории подправить... Закат солнца вручную недостаточно продуктивен...


Ну что все набросились? Все когда-то начинали с "нуля"
Я не думаю, что вы родились со скрытым знанием скуля :)
2 окт 14, 10:03    [16648414]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
тема закрыта для Вас.
2 окт 14, 10:04    [16648418]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Aliona, а на мой вопрос будет ответ или решили тут вообще больше не спрашивать?
2 окт 14, 10:05    [16648424]     Ответить | Цитировать Сообщить модератору
 Re: Как проще перенести данные из одной БД в другую?  [new]
Aliona
Member

Откуда: Питер, Москва
Сообщений: 4090
Glory, для Вас тема закрыта.
2 окт 14, 10:05    [16648427]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить