Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сравнение таблицы из БД и бекапа этой БД  [new]
fris
Member

Откуда:
Сообщений: 4
Добрый день.

Задача такая: нужно сравнить данные таблицы из БД и бекапа этой БД с помощью sql скрипта, т.е. программно. Есть полный путь к бекапу(файл bak), нужно поднять этот бекап, но не накатывать его, их этого бекапа взять данные таблицы и сравнить с таблицей из текущей развернутой версии БД.
Подскажите , пожалуйста, в какую сторону копать? В первую очередь интересует как данные таблицы из бекапа перевести в вид которым можно потом манипулировать через t-sql.

ps: параллельно буду смотреть форум, но в основном пишут про какие то ошибки , проблемы, а тут наверное вопрос на знание мат части( t-sql, и механизм работы с бекапом не накатывая его на сервер)
8 июл 18, 12:43    [21553647]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
aleks222
Member

Откуда:
Сообщений: 855
fris
тут наверное вопрос на знание мат части( t-sql, и механизм работы с бекапом не накатывая его на сервер)


Скажем точнее: тут яркая демонстрация безграмотности вопрошающего.

Только для тебя: нет никаких "механизмов работы с бекапом не накатывая его на сервер".
Учись.
8 июл 18, 12:51    [21553672]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
invm
Member

Откуда: Москва
Сообщений: 9128
fris
механизм работы с бекапом не накатывая его на сервер
Штатного механизма нет. Есть сторонние решения. Задорого.
Готовы платить?
8 июл 18, 14:28    [21553859]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
fris
Member

Откуда:
Сообщений: 4
Суть задачи в том чтобы в sql-скрипте сравнить данные таблицы из бэкапа(bak файл) и текущей версии таблицы и на экран выдать данные, которые различаются. И чтобы после завершения работы скрипта БД осталась в том же состоянии, что и до его запуска, т.е. чтобы бэкап не был накачен на текущую версию БД.

Алгоритм в голову приходит такой:
1. Данные интересующей таблицы сложить во временную таблицу
2. Сделать бэкап текущей версии БД в новый файл
3. Взять интересующий бэкап и накатить его.
4. После этого сравнить данные из временной таблицы п.1 и таблицы в БД после п.3. Выдать результат на экран.
4. Накатить бэкап из п.2

Можно ли так сделать? Получается как-то громоздко…
8 июл 18, 15:06    [21553906]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
fris
Подскажите , пожалуйста, в какую сторону копать?
Развернуть бакап в новую базу, далее можно будет "взять данные таблицы и сравнить с таблицей из текущей развернутой версии БД."

Непосредственно из бакапа можно работать из сторонних решений, но они стоят денег (немного, по сравнению с самим сиквелом).
8 июл 18, 15:09    [21553911]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
aleks222
Member

Откуда:
Сообщений: 855
fris
Суть задачи в том чтобы в sql-скрипте сравнить данные таблицы из бэкапа(bak файл) и текущей версии таблицы и на экран выдать данные, которые различаются. И чтобы после завершения работы скрипта БД осталась в том же состоянии, что и до его запуска, т.е. чтобы бэкап не был накачен на текущую версию БД.

Алгоритм в голову приходит такой:
1. Данные интересующей таблицы сложить во временную таблицу
2. Сделать бэкап текущей версии БД в новый файл
3. Взять интересующий бэкап и накатить его.
4. После этого сравнить данные из временной таблицы п.1 и таблицы в БД после п.3. Выдать результат на экран.
4. Накатить бэкап из п.2

Можно ли так сделать? Получается как-то громоздко…


Похоже тредстартер не в курсе, что бэкап не обязательно восстанавливать в исходную базу.
Вот фантазия и разыгралась...
8 июл 18, 15:16    [21553922]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
fris
Member

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

Спасибо. Удивительно было бы если бы нельзя было развернуть в другую БД. Т.е. при поднятии бэкапа указать имя БД отличающееся от уже имеющейся.
8 июл 18, 15:25    [21553929]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
fris
alexeyvg,

Спасибо. Удивительно было бы если бы нельзя было развернуть в другую БД. Т.е. при поднятии бэкапа указать имя БД отличающееся от уже имеющейся.
Конечно, можно развернуть в БД с другим именем на тот же инстанс, можно с тем же именем на другой инстанс на том же сервере, или вообще на другой сервер.
8 июл 18, 15:36    [21553942]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
fris
Member

Откуда:
Сообщений: 4
Всем спасибо за помощь. Задача несложная(когда более-менее разобрался), но для меня новая.
8 июл 18, 23:44    [21554670]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
L_argo
Member

Откуда:
Сообщений: 1140
Ну ситуации бывают разные, н-р размер базы огромен и ее нецелесообразно/невозможно поднять.

В таких случаях проще всего перед бекапом скопировать сабжевую табличку в отдельную базу, которую и бекапить. :)
9 июл 18, 14:01    [21556163]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение таблицы из БД и бекапа этой БД  [new]
aleks222
Member

Откуда:
Сообщений: 855
L_argo
отдельную базу, которую и бекапить. :)


Стисняюсь спросить: а нафига ее бекапить?
9 июл 18, 14:17    [21556274]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить