26

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

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

4

2 に答える 2

70

ビジュアル デザイナーの代わりに T-SQL スクリプトを使用するだけで、目標を達成できます。

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

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

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

また、既定では、SSMS デザイナーは非常に慎重であり、テーブルの削除と再作成のサイクルを必要とする変更を許可しません。この余分な注意を無効にするにはTools > Options、次のダイアログ ボックスを使用します。

ここに画像の説明を入力

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

于 2012-06-14T14:32:33.903 に答える
0

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

于 2016-08-12T16:47:16.037 に答える