同じ表にnvarchar(max)とvarbinar(max)フィールドを置くことは可能ですか
-
30-09-2019 - |
質問
SQL Server 2008 R2を使用しています。
Nvarchar(Max)フィールドを含むいくつかのフィールドがあるテーブルがあります。
タイプのvarbinary(max)の新しいフィールドを追加しようとすると、「変更の保存は許可されていません。あなたが行った変更には、次のテーブルをドロップして再現する必要があります」。
同じ表にnvarchar(max)とvarbinar(max)フィールドを置くことは可能ですか?
これを修正する唯一の方法、新しい構造を備えた新しいテーブルを作成し、データを転送する方法はありますか?
解決
はい、それは可能です。
このメッセージが表示されている場合は、SSMSテーブルデザイナーの既存の列の中央に新しい列を挿入しようとしたに違いありません。既存の列の端に追加すると、テーブルを完全に再構築する必要はありません。
または実行するだけです
alter table YourTable add newcol varbinary(max) null
他のヒント
はい - もちろん - おそらく、SSMSのこの新しい「安全」オプションがまだ有効になっているだけです(デフォルトではあります):
それは下です Tools > Options
....
行きます Tools | Options > Designers
オプションをオプションを解除します。
SQL Serverでは、既存のテーブルのストレージを動的に変更できないため、この方法でテーブルを進化させることはできません。これを行いたい場合は、新しいスキーマを使用して新しいテーブルを作成し、元のテーブルのデータを入力する必要があります。
所属していません StackOverflow