web-dev-qa-db-ja.com

SQL Server Management Studio-テーブルを削除せずにフィールドタイプを変更する方法

SQL Server Management Studioで、デザインビューの既存のフィールドをDECIMAL (16,14)からDECIMAL (18,14)に変更すると、テーブル全体とそのすべてのデータを削除せずに保存できなくなります。

データベースにレコードが入力されたら、フィールドタイプを変更できますか?

21
Prometheus

ビジュアルデザイナーの代わりにT-SQLスクリプトを使用して、目標を達成してください。

ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14) 

そしてあなたは大丈夫です。

ビジュアルデザイナーは、新しい構造を使用してテーブルを作成し、すべてのデータをコピーするという特別な慎重なルートを取ります。これは機能しますが、退屈です。通常、列を切り詰めない(短くする)限り、T-SQLステートメントを使用して列のデータ型を「インプレース」で確実に変更できます。

また、デフォルトでは、SSMSデザイナーは細心の注意を払っており、テーブルのドロップと再作成を必要とする変更を許可しません。 Tools > Optionsでこの特別な注意を無効にしてから、このダイアログボックスで無効にすることができます。

enter image description here

このオプションをオフにすると、ビジュアルデザイナーで「破壊的な」変更を行うことができます。

57
marc_s

SSMSでオプションがオフになっている場合でも、デザイナーはテーブルを削除します。次回の実行時にプロンプ​​トが表示されることはありません。証明するには、SQLプロファイラーを起動し、SSMSデザイナーを使用して列を変更すると、テーブル変更コマンドが実行される前にドロップテーブルコマンドが発行されます。

0
user6710238