2010-12-15 13 views

答えて

13

既存のテーブルの列のIDENTITYプロパティを変更することはできません。 IDENTITYプロパティを持つ新しい列を追加し、古い列を削除して、古い列名で新しい列の名前を変更します。

もちろん、何人かの人は、新しい列が列のリストの「最後に」表示されることが気に入らないということです(ただし、列の - あなたは常に彼らの名前を使用する必要があります)。その場合、同じトリックを実行する必要がありますが、より高いレベルで - 新しいテーブルを作成し(列定義を変更して)、古いテーブルのデータを新しいテーブルにコピーし、古いテーブルを削除して新しいテーブルの名前を変更します。

私は、SSMSがまだ裏で2番目のトリックを実行することによって、それが可能であるとふりをしてみたと思っていました。

24

カラムのデータ型を確認してください。

varcharの場合、ID列は変更できません。

ID列を変更するには、intデータ型が必要です。

+0

ありがとうございます。私の問題はこれについてでした – Ritz

12

"テーブルの再作成が必要な変更を保存しない"オプションを無効にすることができます。 これはmsdnでは強く推奨されていません。これに行く行うに

: - >オプション -

ツール>デザイナーを そこはオフ:

+0

私の質問にコメントがある場合は、問題の原因がわかりました。 – malckier

9

を「テーブルの再作成が必要な貯蓄の変更を防ぐ」も存在しないことを確認してください列のデフォルト値またはバインディング。

+1

これは私の意見ではこの質問の本当の答えです。 –

0

上記のDamien_The_Unbelieverのコメントに続いて、Visual Studioのデザインインターフェイスで列の順序を編集できます。

私はこれをうまくやっています。確認するには、手順は以下のとおりです。

  1. は、古い列を削除IDENTITYプロパティ
  2. に新しい列を追加します
  3. は、古い列名を持つ新しい列の名前を変更します。
  4. (オプション)Visual StudioのIDENTITY列を持つ列を並べ替えます。
1

デフォルト値またはバインドを削除します。

関連する問題