Измените каждое двойное поле таблицы - PullRequest
0 голосов
/ 22 июня 2011

Мне нужно изменить каждое поле двойной точности таблицы на числовой (15,3) тип, как я могу быстро выполнить эту работу с помощью хранимой процедуры, которая выполняет итерацию по полю данной таблицы, и если тип имеет тип столбца с двойной точностью, изменив числовой?

Ответы [ 2 ]

1 голос
/ 22 июня 2011

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

select 'ALTER TABLE ' + table_name + ' ALTER COLUMN ' + column_name + 'TYPE numeric(15,3)'  
  from information_schema.columns 
 where data_type = 'double precision' 
       and table_name = 'YOUR_TABLE_NAME'

ПРОВЕРЬТЕ ЭТО ПЕРЕД ТЕМ, ЧТОБЫ ЗАПУСТИТЬ. Я НЕ ПРОВЕРИЛ ЭТОГО.

0 голосов
/ 22 июня 2011

В то время как другой вопрос сделает это для всех столбцов;простой "alter table [tablename] alter column [columnToAlter] тип числовой (15,3). Вам не нужно запускать их через курсор; любое значение, на которое это не повлияет, должно остаться без изменений.

Если вы не можете сделать это, изменив сам тип данных, простое обновление [tablename] set [columnname] = cast (имя столбца как числовое (15,3)) также должно работать.

Надеюсь, что это поможет!

...