|
Подскажите. Правильно ли написан запрос SQL? | ☑ | ||
|---|---|---|---|---|
|
0
Невский Александр
18.11.10
✎
08:51
|
Хочу написать прямой запрос, который устанавливает на документах пометку на удаление. Все это хочу написать в транзакции - в случае успешного ее выполнения данные должны сохраняться, в случае неудачи - нет.
Написал вот так: SET IMPLICIT_TRANSACTIONS OFF BEGIN TRANSACTION PometkaNaUdalenie SAVE TRANSACTION Point1 UPDATE _Document109 SET _Document109._Marked = 1 WHERE _Document109._Date_Time >="+"'"+Формат(НачалоДня(ДатаНакладных),"ДЛФ=DT")+"' and _Document109._Date_Time<='"+Формат(КонецДня(ДатаНакладных),"ДЛФ=DT")+"'"+ " and _Document109._Marked = 0 TRY COMMIT CATCH ROLLBACK TRANSACTION PometkaNaUdalenie Point1 Скажите, правильно ли насан сам запрос (именно блок транзакции), или нет? Поправьте меня пожалуйста ... |
|||
|
1
Егор Сергеевич
18.11.10
✎
08:59
|
COMMIT TRANSACTION имхо...
|
|||
|
2
Невский Александр
18.11.10
✎
09:00
|
(1)это понятно, доделаю ... Мне сама логика важна - "TRY ... CATCH" - вот это верно?
|
|||
|
3
Невский Александр
18.11.10
✎
09:01
|
для сохранения изменений - если удалось сохранить, то все нормально, если нет, то делаем откат транзакции
|
|||
|
4
Ненавижу 1С
гуру
18.11.10
✎
09:02
|
я вот этого не понимаю, а что если все плохо, она сама не откатится?
|
|||
|
5
Ненавижу 1С
гуру
18.11.10
✎
09:03
|
вообще не понимаю почему у MS SQL Server транзакциями можно управлять на сервере
|
|||
|
6
Егор Сергеевич
18.11.10
✎
09:06
|
я бы сделал как-то так:
BEGIN TRY BEGIN TRANSACTION; UPDATE _Document109 SET _Document109._Marked = 1 WHERE _Document109._Date_Time >="+"'"+Формат(НачалоДня(ДатаНакладных),"ДЛФ=DT")+"' and _Document109._Date_Time<='"+Формат(КонецДня(ДатаНакладных),"ДЛФ=DT")+"'"+ " and _Document109._Marked = 0 COMMIT TRANSACTION; END TRY BEGIN CATCH ROLLBACK TRANSACTION; END CATCH; |
|||
|
7
Егор Сергеевич
18.11.10
✎
09:09
|
http://technet.microsoft.com/ru-ru/library/ms175976.aspx
Там есть про использование try...catch внутри транзакций |
|||
|
8
smitru
18.11.10
✎
09:20
|
(0) Жесть... а нафига изврат???
Ведь у тебя будут помечены на удаление ПРОВЕДЁННЫЕ документы, по которым наверняка есть движения в регистрах... |
|||
|
9
Невский Александр
18.11.10
✎
09:23
|
(8) все это доработано, движения тоже удаляются
на данный момент меня интересует "try ... catch" |
|||
|
10
Невский Александр
18.11.10
✎
09:37
|
А может кто еще знает - чтобы мне быть точно уверенным - при отмене проведения документа и пометке ее на удаление - делается ли хоть какое-нибудь изменение (любое) в таблице табличной части этого документа?
|
|||
|
11
Ненавижу 1С
гуру
18.11.10
✎
09:37
|
(10) не в таблице, а таблицАХ в общем случае
имхо, нет |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |