2011-06-21 4 views
0

テーブルのすべてのダブルフィールド、 私は与えられたのフィールドを反復処理するストアドプロシージャとすぐにこの仕事をすることができますかテーブルとタイプがある場合は倍精度は、数値に列を変更?アルター私は数値(15,3)タイプのテーブルのすべての倍精度フィールドを変更する必要が

+0

をあなたのテーブルにはこれを手動で行うことは現実的ではありませんことを、どのように多くのフィールドがありますか?私は、多かれ少なかれ30は倍精度で、数値に変換する必要がある83の分野というテーブルを変更する必要があり –

+0

。 – aleroot

答えて

1

次のクエリは、あなたがしたい場合は、テーブルフィルタを追加することができます...これらのテーブルを更新するクエリを返す必要があります。結果をコピーして実行します。

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

別の質問には、すべての列のためにそれを行うだろうが。 。シンプルに「テーブルを変更[テーブル名]数値列[columnToAlter]タイプ(15,3)を変えるあなたはカーソルを介してそれらを実行する必要はありません。これによって影響を受けることはないだろう任意の値は影響を受けないまますべき

あなたがデータ型自体を変更することでそれを行うことができない場合は、簡単な更新は、[テーブル名]に設定[ColumnNameに] =キャスト数値として(ColumnNameに(15,3)も動作するはずです。

希望に役立つこと!

関連する問題