![]() |
|
MS SQL. Скопировать 1Сную таблицу, а потом восстановить из неё | ☑ | ||
---|---|---|---|---|
0
SeiOkami
14.03.19
✎
08:22
|
Добрый день
Имеем задачу, где обработка будет изменять два справочника и один регистр сведений(кодировать новые элементы и ставить связи в РС). Изменения будут большие. В больших таблицах. Хочется для тестирования иметь возможность полностью "откатить" таблицы обратно для повторного запуска обработки. Как средствами MS SQL обеспечить себе такую возможность? Есть пример скрипта, который бы дублировать таблицу с данными с возможностью последующего "восстановления" оригинала? |
|||
1
SeiOkami
14.03.19
✎
08:43
|
up
|
|||
2
Fish
гуру
14.03.19
✎
08:57
|
(0) Ну и откатывай бузу назад средствами скуля на нужную транзакцияю или момент времени. Скуль это позволяет делать при модели full.
|
|||
3
Fish
гуру
14.03.19
✎
08:58
|
(2) бузу = базу
|
|||
4
Aleksey
14.03.19
✎
08:59
|
что бекап рестор уже не можно?
|
|||
5
Aleksey
14.03.19
✎
09:00
|
*не модно
|
|||
6
SeiOkami
14.03.19
✎
09:11
|
с базой работают много людей. мне нужно просто мои таблички восстанавливать
|
|||
7
rsv
14.03.19
✎
09:15
|
(0) эээээ ну сделайте в базе табличку скульную путём копирования таблицы оригинала.Это ваша копия.
|
|||
8
rsv
14.03.19
✎
09:16
|
Зальете потом эту таблицу в оригинал.вот и все "восстановление"
|
|||
9
Asmody
14.03.19
✎
09:18
|
По базе правой кнопкой тыц, там есть Import Data/Export Data. Хоть в плоский файл, хоть в Access/Excel, хоть в другую БД
|
|||
10
SeiOkami
14.03.19
✎
09:38
|
я так понимаю, скрипт для такого описать нельзя, нужно инструменты использовать?
хотелось бы скрипт описать и просто запускать по кнопке, а не постоянно выбирать источник\приемник\таблицы и т.д. |
|||
11
Asmody
14.03.19
✎
10:31
|
(10) Можно. Есть bcp для этого.
|
|||
12
Asmody
14.03.19
✎
10:33
|
||||
13
ДенисЧ
14.03.19
✎
10:38
|
(10) Вроде в мастере экспорта была кнопка для вывода скрипта? Или её убрали?
|
|||
14
Ёпрст
гуру
14.03.19
✎
10:40
|
(13) ему лень даже это открыть.
|
|||
15
SeiOkami
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 не забыть
|
|||
19
SeiOkami
14.03.19
✎
10:57
|
Кнопка "Просмотр" просто показывает запрос выборки. Никаких больше скриптов нет
например, SELECT * FROM [dbo].[_Acc3322] |
|||
20
Ёпрст
гуру
14.03.19
✎
10:59
|
(19) ну правильно, чего там смотреть то ? Сама вставка просто insert into select
|
|||
21
timurhv
14.03.19
✎
11:34
|
>Изменения будут большие. В больших таблицах.
>Хочется для тестирования иметь возможность полностью "откатить" таблицы обратно для повторного запуска обработки. >с базой работают много людей. мне нужно просто мои таблички восстанавливать Вы уже переросли себя, ваш уровень - базы >10000 пользователей. Что мешает извращаться на копии базы, а не производить тестирование обработки на продакшене? |
|||
22
SeiOkami
14.03.19
✎
12:02
|
(21)
извращаемся на копии копия общая, постоянно используется разными командами. |
|||
23
trad
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) за это время кто-то другой может что-то сделать
|
|||
25
SeiOkami
14.03.19
✎
14:20
|
(23), о, спасибо, поробую со свойством set identity_insert
Сейчас сделал обрбаотку на 1С, в которой отмечаешь галочками таблицы, нажимаешь кнопку, получаешь на выходе два скрипта. В одном создание резервной копии через SELECT * INTO _Table_copy FROM _Table. Во втором восстановление этих таблиц через INSERT INTO (список полей кроме [_Version]) |
|||
26
SeiOkami
14.03.19
✎
14:21
|
Позже ещё покатаю и сделаю инструмент для таких манипуляций полностью в 1С (программно скрипты выполнять)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |