SQL Server Management Studioで、デザインビューの既存のフィールドをDECIMAL (16,14)
からDECIMAL (18,14)
に変更すると、テーブル全体とそのすべてのデータを削除せずに保存できなくなります。
データベースにレコードが入力されたら、フィールドタイプを変更できますか?
ビジュアルデザイナーの代わりにT-SQLスクリプトを使用して、目標を達成してください。
ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14)
そしてあなたは大丈夫です。
ビジュアルデザイナーは、新しい構造を使用してテーブルを作成し、すべてのデータをコピーするという特別な慎重なルートを取ります。これは機能しますが、退屈です。通常、列を切り詰めない(短くする)限り、T-SQLステートメントを使用して列のデータ型を「インプレース」で確実に変更できます。
また、デフォルトでは、SSMSデザイナーは細心の注意を払っており、テーブルのドロップと再作成を必要とする変更を許可しません。 Tools > Options
でこの特別な注意を無効にしてから、このダイアログボックスで無効にすることができます。
このオプションをオフにすると、ビジュアルデザイナーで「破壊的な」変更を行うことができます。
SSMSでオプションがオフになっている場合でも、デザイナーはテーブルを削除します。次回の実行時にプロンプトが表示されることはありません。証明するには、SQLプロファイラーを起動し、SSMSデザイナーを使用して列を変更すると、テーブル変更コマンドが実行される前にドロップテーブルコマンドが発行されます。