Переименовать таблицу в Firebird

524
09 июня 2017, 08:37

Необходимо переименовать таблицу в firebird v3.0

Вычитал на форумах и документации, что в firebird отсутствует возможность переименовывать таблицы, и это делать нужно путем пересоздания таблицы.

Написал 3 запроса, занимающиеся: Созданием новой таблицы, переливанием данных из старой таблицы в новую и удалением старой таблицы. Запросы выполняются последовательно.

Однако при попытке удалить таблицу выдается ошибка: "unsuccessful metadata update ojbect table "mytable1" is in use

Не понимаю в чем ошибка. Если выполнять пошагово и сделать некоторую паузу между перелитием данных и удалением старой таблицы - то выполняется без ошибок.

Как можно сделать паузу до тех пор, пока firebird отпустит таблицу? Или как правильно за один проход сделать переименование?

Запрос-1

create table mytable1 (id integer, name varchar(100))

Запрос-2

insert into mytable2 (id, name) select id, name from mytable1

Запрос-3

drop table mytable1

Спасибо за помощь

PS: Запросы выполняются при помощи .net провайдера

READ ALSO
Ошибка при передаче с помощью wsdl-сервиса

Ошибка при передаче с помощью wsdl-сервиса

Использую сервис wsdl (В проект подключен как Service References)

333
Взаимоисключающие checkbox

Взаимоисключающие checkbox

Есть 2 checkboxКогда выделен один второй должен быть неактивен (IsEnabled = false) и наоборот

472
Visible = true не отрабатывает

Visible = true не отрабатывает

Есть форма, из которой вызываю другую форму:

309
Привязка к ComboBoxItem

Привязка к ComboBoxItem

Есть несколько гридовВсе они скрыты до тех пор пока в ComboBoxне выбрано ComboBoxItem

331