Отключение хранимых процедур

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
alekstes
Сообщения: 1
Зарегистрирован: 20 янв 2005, 16:56

Отключение хранимых процедур

Сообщение alekstes » 20 янв 2005, 17:08

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

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 20 янв 2005, 17:20

Если можно, то:

Версия ИБ/ФБ?


А быстрый совет такой: IBExpert-извлечение метаданных-извлечь все ХП-удалить все ХП из базы-изменить все таблицы-из скрипта создать все ХП. Быстро и хорошо. Причем тип полей можно менять в том-же IBExpert-е. И не зачем столбцы создавать и данные переносить.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Отключение хранимых процедур

Сообщение Merlin » 20 янв 2005, 17:49

alekstes писал(а):Такая проблема. в базе в некоторых полях нужно изменить тип.
создаю временное поле, копирую данные в него затем удаляю старое поле, создаю нужное мне поле и возвращаю в него данные.
Но вот проблема! некоторые поля используются в хранимых процедурах. и их невозможно удалить.
конечно можно удалить процедуры а потом их восстановить.
но больно много процедур и хотелось бы обойтись без удаления.
Не хочешь удалять -

ALter Procedure MyProc As
Begin
Exit;
End

а потом альтер обратно. А ещё - начиная с IB6 тип поля можно поменять через Alter Table Alter Column. С некоторыми ограничениями - не каждый тип преобразуется в каждый - и потом сделать обязательно Update MyTable Set ThisColumn=ThisColumn.

Ответить