質問

SQL Server 2008 R2を使用しています。

Nvarchar(Max)フィールドを含むいくつかのフィールドがあるテーブルがあります。

タイプのvarbinary(max)の新しいフィールドを追加しようとすると、「変更の保存は許可されていません。あなたが行った変更には、次のテーブルをドロップして再現する必要があります」。

同じ表にnvarchar(max)とvarbinar(max)フィールドを置くことは可能ですか?

これを修正する唯一の方法、新しい構造を備えた新しいテーブルを作成し、データを転送する方法はありますか?

役に立ちましたか?

解決

はい、それは可能です。

このメッセージが表示されている場合は、SSMSテーブルデザイナーの既存の列の中央に新しい列を挿入しようとしたに違いありません。既存の列の端に追加すると、テーブルを完全に再構築する必要はありません。

または実行するだけです

alter table YourTable add newcol varbinary(max) null

他のヒント

はい - もちろん - おそらく、SSMSのこの新しい「安全」オプションがまだ有効になっているだけです(デフォルトではあります):

alt text

それは下です Tools > Options ....

行きます Tools | Options > Designers オプションをオプションを解除します。

SQL Serverでは、既存のテーブルのストレージを動的に変更できないため、この方法でテーブルを進化させることはできません。これを行いたい場合は、新しいスキーマを使用して新しいテーブルを作成し、元のテーブルのデータを入力する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top