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

Откуда:
Сообщений: 12
Интересует возможность отката выполненного запроса. Очень удобно это выполнено в Accesse: "Будет обновлено n записей." И две кнопки: Да и Нет.
В SQL Servere тоже 2 кнопки: ОК и Справка :-(
22 апр 05, 15:20    [1490147]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Enterprise Manager такой возможности не предоставляет.
22 апр 05, 15:23    [1490154]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
Ptaha Ptaha
Интересует возможность отката выполненного запроса. Очень удобно это выполнено в Accesse: "Будет обновлено n записей." И две кнопки: Да и Нет.
В SQL Servere тоже 2 кнопки: ОК и Справка :-(

да, в ЕМ такой продвинутой возможности дважды подумать не предоставляет
22 апр 05, 15:30    [1490178]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
да, какого ещё отката,
это вовсе не откат а предупреждение
22 апр 05, 15:30    [1490181]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
А какие способы решения этой проблемы имеются?
Я пока что придумал 2:
1. Восстановление журнала транзакций.
2. Программно, например, закодить в Delphi.
22 апр 05, 15:31    [1490182]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Ptaha Ptaha
А какие способы решения этой проблемы имеются?
Я пока что придумал 2:
1. Восстановление журнала транзакций.
2. Программно, например, закодить в Delphi.

Объясните, чего Вы хотите сделать.
22 апр 05, 15:41    [1490216]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Smirnov Anton
да, какого ещё отката,
это вовсе не откат а предупреждение


На мой взгляд, это предупреждение при нажатии на кнопку "Нет" влечет за собой откат запроса.
22 апр 05, 15:42    [1490220]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
Ptaha Ptaha
Smirnov Anton
да, какого ещё отката,
это вовсе не откат а предупреждение


На мой взгляд, это предупреждение при нажатии на кнопку "Нет" влечет за собой откат запроса.

а по моему это приведёт не к откату, а к его невыполнению
22 апр 05, 15:42    [1490227]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
Будет обновлено n записей
будущее время, те они ещё не обновлены
22 апр 05, 15:43    [1490233]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич
Объясните, чего Вы хотите сделать.


Мне бы хотелось работать в EM с описанной возможностью Accessa. Как я понял, такое невозможно. Но что тогда делать, если я ошибся в создании запроса (не то обновил или удалил). Как исправить ошибку.
22 апр 05, 15:44    [1490239]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
автор
На мой взгляд, это предупреждение при нажатии на кнопку "Нет" влечет за собой откат запроса.

Т.е. на Ваш взгляд будет хорошо держать открытой транзакцию часами(к примеру), пока юзер не нажмет да или нет? В таком случае с Вашим проектом сможет работать только один человек.
22 апр 05, 15:45    [1490248]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Smirnov Anton
Будет обновлено n записей
будущее время, те они ещё не обновлены


Может я и не прав. Но что же тогда делает Access так долго при выполнении запроса на обновлении скажет 10 000 записей. Не думаю, что все это время он записывает в журнал транзакций один небольшой запрос. Повторюсь, может я и не прав.
22 апр 05, 15:47    [1490261]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Ptaha Ptaha
Гавриленко Сергей Алексеевич
Объясните, чего Вы хотите сделать.


Мне бы хотелось работать в EM с описанной возможностью Accessa. Как я понял, такое невозможно. Но что тогда делать, если я ошибся в создании запроса (не то обновил или удалил). Как исправить ошибку.

Cкопируйте базу, разверните ее и играйтесь с ней сколько угодно.
Напимер так:
begin tran
...
[мой_запрос]
[проверка_косяков_моего_запроса]
rollback
22 апр 05, 15:47    [1490263]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31623
Ptaha Ptaha
Гавриленко Сергей Алексеевич
Объясните, чего Вы хотите сделать.


Мне бы хотелось работать в EM с описанной возможностью Accessa. Как я понял, такое невозможно. Но что тогда делать, если я ошибся в создании запроса (не то обновил или удалил). Как исправить ошибку.
А в аксесе, если вы нажмёте кнопку "ДА", а потом увидете, что вы не то удалили, вы тоже можете отменить?
В EM и QA перед выполнением запроса они ничего не переспрашивают (слава богу, а то в 2 раза больше кнопок жать). Зато в MSSQL можно откатить базу на любой момент времени, хоть и не очень быстро (не просто нажать "undo").
22 апр 05, 15:50    [1490284]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Если бы это была игра...
Сейчас идет напряженная работа по верификации данных. Часто выполняются запросы по обновлению и удалению данных. И каждый раз делать копию базы данных или восстановление из резерва очень неудобно.
22 апр 05, 15:53    [1490306]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ptaha Ptaha
Если бы это была игра...
Сейчас идет напряженная работа по верификации данных. Часто выполняются запросы по обновлению и удалению данных. И каждый раз делать копию базы данных или восстановление из резерва очень неудобно.

Вам уже кажется несколько раз сказали про
begin transaction
rollback/commit transaction
22 апр 05, 15:59    [1490331]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
Ptaha Ptaha

Может я и не прав. Но что же тогда делает Access так долго при выполнении запроса на обновлении скажет 10 000 записей. Не думаю, что все это время он записывает в журнал транзакций один небольшой запрос. Повторюсь, может я и не прав.

ладно, согласен, попробовал пообновлять 400000 строк
действительно, он что-то делает долго,потом спрашивает, а потом моентально выполняет(даже не важно что он делает)
но вы не заметили, что пока вы не нажали да или нет - база захвачена в монопольный режим и с ней ничего нелья сделать?
Ptaha Ptaha
Сейчас идет напряженная работа по верификации данных. Часто выполняются запросы по обновлению и удалению данных. И каждый раз делать копию базы данных или восстановление из резерва очень неудобно.

я думаю что данные роверяются на соответсвии какой-то бизнес логике
те вы собираетесь
внести изменения
проверить на соответсвие каким то требованиям
если не соответсвуют, то откатить?
а не проще проверять это до исполнения запроса?
или по крайней мере делать так, как предложил Гавриленко Сергей Алексеевич
22 апр 05, 16:01    [1490347]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Да проверяется на соответствие логике. Причем, так уж у нас сложилось, что часто мы проверяем корректность выполняемого запроса по числу обновляемых записей.

По поводу
begin tran
commit\rollback

я согласен

Но возникает вопрос, как в проверку включить примерно следующее
if число_обновляемых записей = k
commit
22 апр 05, 16:08    [1490389]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
Но возникает вопрос, как в проверку включить примерно следующее
if число_обновляемых записей = k
commit

BOL

@@ROWCOUNT
Returns the number of rows affected by the last statement
22 апр 05, 16:09    [1490400]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
автор
Но возникает вопрос, как в проверку включить примерно следующее

if @@rowcount= k
commit
22 апр 05, 16:09    [1490402]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Serbat_Ivan
Member

Откуда: SQL.RU
Сообщений: 1603
Ptaha Ptaha
Если бы это была игра...
Сейчас идет напряженная работа по верификации данных. Часто выполняются запросы по обновлению и удалению данных. И каждый раз делать копию базы данных или восстановление из резерва очень неудобно.


Вообще звучит приблизительно так. Мы тут отбойным молотком памятники реставрируем. Не очень удобно как-то, но мы всё равно будем делать это так.
Мыши плакали и кололись, но продолжали жрать кактус...

По теме: QA и Enterprise предназначены для администраторов и разработчиков. Если вы хотите эти инструменты использовать как клиентские приложения у пользователей - см. выше. А если у вас верификацией админы занимаются - один хрен какие-нибудь тулзы писать нужно, если хотите от ошибок подстраховаться, да и бякапы делать нужно всегда, а не только когда боитесь за данные. Иногда данные рушатся не только в те моменты когда за них боятся
22 апр 05, 16:13    [1490423]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Ptaha Ptaha
Member

Откуда:
Сообщений: 12
Спасибо! Буду проверять.
Уж лучше так, чем никак. Хотелось бы, конечно, иметь undo (как в Worde, например), но сам понимаю, что это чудеса :-)
22 апр 05, 16:13    [1490424]     Ответить | Цитировать Сообщить модератору
 Re: Откат (отмена) выполненного запроса  [new]
Serbat_Ivan
Member

Откуда: SQL.RU
Сообщений: 1603
Ptaha Ptaha
Но возникает вопрос, как в проверку включить примерно следующее
if число_обновляемых записей = k
commit




@@rowcount

А если проще - сделайте сначала
SELECT COUNT(*) FROM tblName WHERE ваше_условие

А потом уже
DELETE FROM tblName WHERE ваше_условие
или
UPDATE tblName SET ... WHERE ваше_условие
22 апр 05, 16:17    [1490443]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить