Вход | Регистрация
 

MS SQL. Скопировать 1Сную таблицу, а потом восстановить из неё

MS SQL. Скопировать 1Сную таблицу, а потом восстановить из неё
Я
   SeiOkami
 
14.03.19 - 08:22
Добрый день

Имеем задачу, где обработка будет изменять два справочника и один регистр сведений(кодировать новые элементы и ставить связи в РС).
Изменения будут большие. В больших таблицах. Хочется для тестирования иметь возможность полностью "откатить" таблицы обратно для повторного запуска обработки.

Как средствами MS SQL обеспечить себе такую возможность? Есть пример скрипта, который бы дублировать таблицу с данными с возможностью последующего "восстановления" оригинала?
 
 
   SeiOkami
 
1 - 14.03.19 - 08:43
up
   Fish
 
2 - 14.03.19 - 08:57
(0) Ну и откатывай бузу назад средствами скуля на нужную транзакцияю или момент времени. Скуль это позволяет делать при модели full.
   Fish
 
3 - 14.03.19 - 08:58
(2) бузу = базу
   Aleksey
 
4 - 14.03.19 - 08:59
что бекап рестор уже не можно?
   Aleksey
 
5 - 14.03.19 - 09:00
*не модно
   SeiOkami
 
6 - 14.03.19 - 09:11
с базой работают много людей. мне нужно просто мои таблички восстанавливать
   rsv
 
7 - 14.03.19 - 09:15
(0) эээээ ну сделайте в базе табличку скульную путём копирования таблицы оригинала.Это ваша копия.
   rsv
 
8 - 14.03.19 - 09:16
Зальете потом эту таблицу в оригинал.вот и все "восстановление"
   Asmody
 
9 - 14.03.19 - 09:18
По базе правой кнопкой тыц, там есть Import Data/Export Data. Хоть в плоский файл, хоть в Access/Excel, хоть в другую БД
   SeiOkami
 
10 - 14.03.19 - 09:38
я так понимаю, скрипт для такого описать нельзя, нужно инструменты использовать?
хотелось бы скрипт описать и просто запускать по кнопке, а не постоянно выбирать источник\приемник\таблицы и т.д.
 
 Рекламное место пустует
   Asmody
 
11 - 14.03.19 - 10:31
(10) Можно. Есть bcp для этого.
   Asmody
 
12 - 14.03.19 - 10:33
   ДенисЧ
 
13 - 14.03.19 - 10:38
(10) Вроде в мастере экспорта была кнопка для вывода скрипта? Или её убрали?
   Ёпрст
 
14 - 14.03.19 - 10:40
(13) ему лень даже это открыть.
   SeiOkami
 
15 - 14.03.19 - 10:41
(13), не видел такой ни на одном из этапов
   ДенисЧ
 
16 - 14.03.19 - 10:42
(15) лет 10 назад видел... Сейчас нет под рукой сервера, чтобы проверить.
   Ёпрст
 
17 - 14.03.19 - 10:51
(15) кнопка просмотр. Но при простом импорте\экспорте из таблицы там тупо инсерт инто селект и всё
   Ёпрст
 
18 - 14.03.19 - 10:52
Можно и свой запрос написать. 1 строка кода. Перед инсертом тока, truncate не забыть
   SeiOkami
 
19 - 14.03.19 - 10:57
Кнопка "Просмотр" просто показывает запрос выборки. Никаких больше скриптов нет 
например, SELECT * FROM [dbo].[_Acc3322]
   Ёпрст
 
20 - 14.03.19 - 10:59
(19) ну правильно, чего там смотреть то ? Сама вставка просто insert into select
   timurhv
 
21 - 14.03.19 - 11:34
>Изменения будут большие. В больших таблицах.
>Хочется для тестирования иметь возможность полностью "откатить" таблицы обратно для повторного запуска обработки.
>с базой работают много людей. мне нужно просто мои таблички восстанавливать

Вы уже переросли себя, ваш уровень - базы >10000 пользователей.
Что мешает извращаться на копии базы, а не производить тестирование обработки на продакшене?
   SeiOkami
 
22 - 14.03.19 - 12:02
(21)
извращаемся на копии
копия общая, постоянно используется разными командами.
   trad
 
23 - 14.03.19 - 12:52
--скопировать
if object_id('_Acc3322_copy') is not null drop table _Acc3322_copy
select *
into _Acc3322_copy
from _Acc3322

--восстановить из копии
set identity_insert _Acc3322 ON
begin tran
truncate table _Acc3322
insert into _Acc3322 (список всех полей)
select *
from _Acc3322_copy
commit tran
set identity_insert _Acc3322 off
   Вафель
 
24 - 14.03.19 - 13:07
(2) за это время кто-то другой может что-то сделать
   SeiOkami
 
25 - 14.03.19 - 14:20
(23), о, спасибо, поробую со свойством set identity_insert

Сейчас сделал обрбаотку на 1С, в которой отмечаешь галочками таблицы, нажимаешь кнопку, получаешь на выходе два скрипта. В одном создание резервной копии через SELECT * INTO _Table_copy FROM _Table. Во втором восстановление этих таблиц через INSERT INTO (список полей кроме [_Version])
   SeiOkami
 
26 - 14.03.19 - 14:21
Позже ещё покатаю и сделаю инструмент для таких манипуляций полностью в 1С (программно скрипты выполнять)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует