Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
23.11.2020, 12:00
|
|||
---|---|---|---|
|
|||
Удаление временной таблицы в случае Rollback Transaction |
|||
#18+
Добрый день, всем! Возник такой вопрос, создается таблица, куда делается инсерт данных по определенному условию и в случае, скажем, ошибки, выполняется Rollback Transaction. Так вот вопрос, удаляется ли временная таблица при откате или нужно дополнительно при Rollback Transaction дописывать drop table #ORDER как в скрипте ниже и не вызовет ли этот drop других проблем? Заранее спасибо alter procedure [dbo].[CUT] @Cut_days int = 30 as set nocount ON Declare @ORDER_rowcount1 int Begin Transaction select * into #ORDER from ORDER where EDITDATE < (GETUTCDATE() - @Cut_days ) SET @ORDER_rowcount1 = @@rowcount IF @ORDER_rowcount1 = 0 BEGIN Rollback Transaction drop table #ORDER END ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.11.2020, 12:05
|
|||
---|---|---|---|
Удаление временной таблицы в случае Rollback Transaction |
|||
#18+
georgy_2012, drop table не нужен, у вас таблица создается в рамках пользовательской транзакции, если транзакция откатится то и создание таблицы тоже. текущий код по сути должен ругаться (при исполнении) на инструкции drop table #ORDER поскольку на момент начала инструкции таблицы уже не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.11.2020, 12:45
|
|||
---|---|---|---|
|
|||
Удаление временной таблицы в случае Rollback Transaction |
|||
#18+
felix_ff, Большое спасибо! Все понял ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1685383]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
89ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 294ms |
total: | 471ms |
0 / 0 |