列の順序を変更したり、SQL Server 2008 の既存のテーブルに新しい列を追加したりする必要がある状況があります。
既存の列
MemberName
MemberAddress
Member_ID(pk)
そして、私はこの注文が欲しい
Member_ID(pk)
MemberName
MemberAddress
列の順序を変更したり、SQL Server 2008 の既存のテーブルに新しい列を追加したりする必要がある状況があります。
既存の列
MemberName
MemberAddress
Member_ID(pk)
そして、私はこの注文が欲しい
Member_ID(pk)
MemberName
MemberAddress
私は同じ答えを得た , 続けてSQL Server → Tools → Options → Designers → Table and Database Designers
選択を解除するPrevent saving changes that require table re-creation
2- テーブル デザイン ビューを開き、列を上下にスクロールして変更を保存します。
ALTER ステートメントでは使用できません。列を特定の順序で並べたい場合は、新しいテーブルを作成する必要があります。INSERT INTO newtable (col-x,col-a,col-b) SELECT col-x,col-a,col-b FROM を使用します。 oldtable を使用してデータを oldtable から newtable に転送し、oldtable を削除して、newtable の名前を oldtable 名に変更します。
データベース テーブル内の列の順序は重要ではないため、これは必ずしも推奨されるわけではありません。SELECT ステートメントを使用すると、列に名前を付けて、必要な順序で返すことができます。
テーブルにレコードがない場合は、ドロップしてからテーブルを作成できます。
レコードがある場合は、SQL Server Management Studio を使用して実行できます。
テーブルをクリックして右クリックし、[デザイン] をクリックするだけで、必要な順序でフィールドをドラッグして列の順序を並べ替え、[保存] をクリックします。
よろしくお願いします
私はこれを試しましたが、それを行う方法がわかりません。
これが私のアプローチです。
EXEC sp_rename 'Employee', 'Employee1'
-- 元のテーブル名は Employee ですINSERT INTO TABLE2 SELECT * FROM TABLE1
. -- Employee に挿入して、Employee1 から Name、Company を選択しますDROP table Employee1
.これは、ソース管理と共有開発環境への自動展開を使用する場合に問題になる可能性があります。私が働いている場所では、開発層に非常に大きなサンプル DB を使用して作業しています (本番データのサブセット)。
最近、テーブルから 1 つの列を削除し、最後に余分な列を追加する作業を行いました。その後、列の削除を元に戻す必要があったため、最後に再度追加しました。つまり、テーブルとすべての参照は環境内で正しいことを意味しますが、テーブル定義の変更について不平を言うため、ソース管理の自動展開は機能しなくなります。
ここでの本当の問題は、テーブルとインデックスが最大 120 GB で、環境に空き容量が最大 60 GB しかないため、次のいずれかを行う必要があることです。
a)順序が間違っている既存の列の名前を変更し、新しい列を正しい順序で追加し、データを更新してから古い列を削除します
また
b)テーブルの名前を変更し、正しい順序で新しいテーブルを作成し、古いテーブルから新しいテーブルに挿入し、古いテーブルから削除します
一時テーブルを使用する SSMS/TFS スキーマ比較オプションは、ディスクに十分なスペースがないため機能しません。
これが最善の方法であるとか、列の順序が本当に重要であると言っているのではなく、それが問題になるシナリオがあり、問題を解決するために考えたオプションを共有しているだけです