4

この列リストを変更しようとすると:

Nombre
Imagen
Descripcion
Activo
IdLineaProducto

これに(IdLineaProductoが最初です)

IdLineaProducto
Nombre
Imagen
Descripcion
Activo

SQL Server Management Studio は、テーブルを削除して再作成する必要があるため、変更を保存することは許可されていないと言っています (スペイン語で...)。SQL Server 2005 ではこれを行うことができましたが、SQL Server 2008 ではできませんでした。

int 非 ID 列を ID に変換しようとするなど、他の状況でも同じことが起こります。なぜこれが起こるのですか?どうすればこれを解決できますか? たぶん、設定ミスの問題ですか?SQL Server の新機能はありますか?

4

2 に答える 2

4

この問題の解決策を見つけました。

これは仕様によるものであり、Management Studio でプロパティのチェックを外すことで簡単に修正できます。Management Studio でこれを修正するには、[ツール] -> [オプション] に移動し、[デザイナー] ページに移動して、[テーブルの再作成が必要な変更を保存しない] のチェックを外します。

これに関連する他のテーブルのデータが失われるなど、望ましくない結果が生じる可能性があることに注意してください。

于 2009-05-30T22:32:59.240 に答える
1

それがまさにその仕組みです...列を最後に追加することしかできDROPませCREATEん。しかし、なぜ順序を変更したいのですか?理想的でなくても、あなたのSELECTetcはこれを処理できます...つまり

SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM   TheTable
...

(単に使用することはめったに良い考えではありませんSELECT *)


IDENTITY; 繰り返しますが、これは列の基本です-この場合、データをコピーして列をコピーし、列を(右側で)DROP再コピーして元に戻すことができます-しかし、その後、余分な複雑さがありますおよび値 (既存の ID 値の重複を取得しようとしないため)。ADDIDENTITYIDENTITY INSERTSEED

于 2009-05-30T22:08:01.007 に答える