powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возмозно удалить таблицу внутри транзакции?
5 сообщений из 5, страница 1 из 1
Возмозно удалить таблицу внутри транзакции?
    #32009521
Aleksey Isaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая: нужно удалить данные из нескольких таблиц, а потом удалить одну из таблиц в MS-SQL. Хочется, что при ошибке при удалении таблицы можно было бы откатить транзакцию, чтобы данные тоже не удалились. Вот кусок кода на Delphi:
\n try
db.StartTransaction;
//удаление записей из таблиц
...
//удаление таблицы из БД
...
if db.InTransaction then
db.Commit;
except
if dbMeta.InTransaction then
db.Rollback;
end;

Так вот, при попытке выполнения запроса типа "drop table test" происходит неявный Commit. Это можно как-нибудь обойти?
...
Рейтинг: 0 / 0
Возмозно удалить таблицу внутри транзакции?
    #32009529
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, что там происходит в Delphi, но в T-SQL это работает корректно.
create table test1(col1 int)
create table test2(col2 int)

begin tran
insert into test1 values (1)
insert into test2 values (2)
drop table test2
rollback

select * from test1
select * from test2

Оба select'а дают ноль строк. Если обнаружится, что это все-таки дельфовый глюк, то пишите stored proc и вперед.
...
Рейтинг: 0 / 0
Возмозно удалить таблицу внутри транзакции?
    #32009536
Aleksey Isaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хех, а, может, дело в настройках каких? Может, чего в SQL Server выствыить надо?
...
Рейтинг: 0 / 0
Возмозно удалить таблицу внутри транзакции?
    #32009544
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, что вмешиваюсь, но я несовсем понял ответ GreenSunrise, т.к. был задан вопрос
о возможности отката транзакции с сохранением данных, а вышеупомянутый ответ демонстрирует
возвращение запросами SELECT нулевых строк ?
...
Рейтинг: 0 / 0
Возмозно удалить таблицу внутри транзакции?
    #32009561
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Andy: вопрос как раз был противоположный - удаление таблицы внутри транзакции по словам Aleksey Isaev приводит к _нежелательному_ commit'у - в моем примере должны были остаться данные в первой таблице. Но поскольку select возвращает 0 записей, значит, commit не происходит.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возмозно удалить таблицу внутри транзакции?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]