web-dev-qa-db-ja.com

SQLテーブルの列のデータ型を整数から10進数に変更する方法

intとして作成したテーブルの列の1つのデータ型を割り当てました。私の問題は、クエリを実行したときに小数点以下が表示されないことです。

この列のデータ型を修正して、小数点以下を受け入れるようにするにはどうすればよいですか?

テーブルはdbo.Budgetおよび関係する列はROEと呼ばれます。

13
user3115933

簡単-このSQLステートメントを実行するだけ

ALTER TABLE dbo.Budget
ALTER COLUMN ROE DECIMAL(20,2)   -- or whatever precision and scale you need.....

freely availableMSDNドキュメント 10進数の精度、スケール、長さ、および値の範囲について可能

20
marc_s

これを明確にするために:

テーブルにデータがない場合、またはそれほど多くない場合は、単純なALTER TABLEステートメント(ここの他の回答で説明されている)は問題ありません。

ただし、大量のデータ(数百万行、場合によってはテーブルのサイズに応じてそれ以下)および/またはテーブルの競合が多く、完全なダウンタイム/メンテナンスウィンドウの機会があまりない場合は、この回答で説明したような別のアプローチ: 非常に大きなテーブルのデータ型を絞り込む

2
Solomon Rutzky

その列のデータ型を変更します..しかし、一般的にSQLは変更することを許可しません。それはその列を削除するよう促します。そのことを達成するための設定があります。
Tool-Option-designers-Table and Database designersに移動し、保存オプションの防止をオフにします。私はabt sql server 2008R2 enter image description here

1

この簡単なSQL文を実行できます

Alter table yourtable
Alter Column yourtable_column Decimal(10,2)

10進数の精度を設定し、必要に応じてスケーリングできます。

0