Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Всем привет
Случайно удалил все данные вот таким образом
delete from my_table

помогите как сделать ROLLBACK??????
10 янв 19, 12:33    [21781442]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36006
Из бэкапа.
10 янв 19, 12:34    [21781447]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Гавриленко Сергей Алексеевич,

как?
10 янв 19, 12:38    [21781452]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36006
sanzhar333,

https://docs.microsoft.com/ru-ru/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-2017
10 янв 19, 12:40    [21781455]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Гавриленко Сергей Алексеевич,

а кодом нельзя?
10 янв 19, 12:42    [21781458]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36006
sanzhar333
Гавриленко Сергей Алексеевич,

а кодом нельзя?
А команда restore -- это по-вашему что?
10 янв 19, 12:44    [21781462]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
sanzhar333
Гавриленко Сергей Алексеевич,

а кодом нельзя?

а что, в ссылке Гавриленко не кодом, а силой мысли ресторят?
10 янв 19, 12:44    [21781463]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
Гавриленко Сергей Алексеевич
sanzhar333
Гавриленко Сергей Алексеевич,

а кодом нельзя?
А команда restore -- это по-вашему что?

надо полагать, китайская грамота
10 янв 19, 12:45    [21781466]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Гавриленко Сергей Алексеевич,
в вашей ссылке все очень сложно :(
как Кодом можно сделать ROLLBACK?
10 янв 19, 12:46    [21781468]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Yasha123,ок, скриптом
10 янв 19, 12:47    [21781470]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36006
sanzhar333
Гавриленко Сергей Алексеевич,
в вашей ссылке все очень сложно :(
как Кодом можно сделать ROLLBACK?
Раз вам сложно, обратитесь к администратору вашей базы.
10 янв 19, 12:49    [21781474]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
sanzhar333
Yasha123,ок, скриптом

т.е. скрипт не код?
10 янв 19, 12:49    [21781475]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Гавриленко Сергей Алексеевич,

я сам админ)))))))
10 янв 19, 12:51    [21781480]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
Гавриленко Сергей Алексеевич,почему здесь все так сложно?в ОРАКЛЕ просто одной кнопкой делается
10 янв 19, 12:52    [21781481]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
sanzhar333
как Кодом можно сделать ROLLBACK?

так и сделать, ROLLBACK
---
один нюанс:
ROLLBACK надо делать до COMMIT.
закоммиченное откатить нельзя.
а ваш DELETE сработал в режиме автокоммита.
т.е. он уже закоммичен.

как откатить закоммиченное?
никак.

но можно вернуть базу на какой-то момент в прошлом, восстановив ее из бэкапа.
ссылку на доку дали.
т.е. код есть.
а есть ли бэкап?
10 янв 19, 12:53    [21781485]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
sanzhar333
Гавриленко Сергей Алексеевич,почему здесь все так сложно?в ОРАКЛЕ просто одной кнопкой делается

в Оракле тоже делается кодом.
и не поверите, тем же самым, ROLLBACK.
просто в Оракле никто за вас не коммитит,
а в SQL Server-е по умолчанию автокоммит.
т.е. если вы не начали транзакцию явно (begin tran),
то ее за вас открыли неявно.
и закоммитили тоже неявно
10 янв 19, 12:57    [21781496]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6260
В Оракле по дефолту неявное открытие транзакций, а в сиквеле явное. Что упало, то пропало, только из резервной копии базы можно добыть. Ничего, первый блин всегда комом. Особенно без обучения и чтения документации.
10 янв 19, 13:01    [21781504]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6260
Если полная модель восстановления и имеется старая резервная копия, то сделайте бэкап журнала, а потом можете восстановить базу на нужный момент времени. Если простая модель - то "шеф, усё пропало!".
10 янв 19, 13:03    [21781505]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

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

а можно убрать авто-коммит???
10 янв 19, 13:05    [21781509]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
Yasha123
Member

Откуда:
Сообщений: 1285
sanzhar333
Yasha123,

а можно убрать авто-коммит???

можно.
но по ряду причин это не лучшая идея.
проще каждый раз открывать транзакцию явно,
написав begin tran.
тогда ничего не закоммитится без вашего явного commit.

SET IMPLICIT_TRANSACTIONS ON Is One Hell of a Bad Idea
10 янв 19, 13:11    [21781524]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 437
sanzhar333
Гавриленко Сергей Алексеевич,

я сам админ)))))))


вопросов бльше не имею (ц)
10 янв 19, 13:27    [21781564]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
sanzhar333
Member

Откуда:
Сообщений: 62
256k,

=))))
10 янв 19, 13:45    [21781592]     Ответить | Цитировать Сообщить модератору
 Re: microsoft sql server management studio---ROLLBACK  [new]
invm
Member

Откуда: Москва
Сообщений: 8438
Yasha123
SET IMPLICIT_TRANSACTIONS ON Is One Hell of a Bad Idea
На самом деле все еще печальнее
use tempdb;
set implicit_transactions off;
go

if @@trancount > 0 rollback;
go

create table dbo.t (id int primary key);
insert into dbo.t values (1);
go

set implicit_transactions on;
if exists(select 1 from dbo.t with (repeatableread) where id = 1)
 select * from (select @@trancount) a([@@trancount]) outer apply (select * from sys.dm_tran_locks where request_session_id = @@spid) l;

if @@trancount > 0 rollback;
go

set implicit_transactions off;
begin tran;
if exists(select 1 from dbo.t with (repeatableread) where id = 1)
 select * from (select @@trancount) a([@@trancount]) outer apply (select * from sys.dm_tran_locks where request_session_id = @@spid) l;

if @@trancount > 0 rollback;
go

set implicit_transactions on;
begin tran;
select @@trancount as [@@trancount];

if @@trancount > 0 rollback;
go

set implicit_transactions off;
go

drop table dbo.t;
go
10 янв 19, 14:02    [21781633]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить