SQL Serverの既存の10進列の精度を変更する方法はありますか?
SQL Serverの既存の10進列の精度を変更する方法はありますか?
回答:
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
を置くだけでdecimal(precision, scale)、精度とスケールを希望の値に置き換えます。
テーブル内のデータを使用してこれを使用したテストは行っていませんが、精度を変更すると、新しい精度が低くなるとデータが失われる可能性があります。
より良い方法があるかもしれませんが、いつでも列を新しい列にコピーしてドロップし、新しい列の名前を最初の列の名前に戻すことができます。
ウィットに:
ALTER TABLE MyTable ADD NewColumnName DECIMAL(16, 2);
GO
UPDATE MyTable
SET NewColumnName = OldColumnName;
GO
ALTER TABLE CONTRACTS DROP COLUMN OldColumnName;
GO
EXEC sp_rename
@objname = 'MyTable.NewColumnName',
@newname = 'OldColumnName',
@objtype = 'COLUMN'
GO
これはSQLServer 2008 R2でテストされましたが、SQL Server2000以降でも機能するはずです。
エンタープライズマネージャー、デザインテーブルに移動し、フィールドをクリックします。
10進数の列を作成します
下部のプロパティには、精度プロパティがあります