既存の列の後に新しい列を追加するSQLクエリが必要なので、列は特定の順序で追加されます。
それを行うALTER
クエリがある場合、私に提案してください。
Microsoft SQL(AFAIK)では、テーブルを変更して特定の列の後に列を追加することはできません。最善の策は、SQL Server Management Studioを使用するか、テーブルをドロップして再追加するか、新しいテーブルを作成してデータを手動で移動することです。どちらも非常に優雅ではありません。
MySQL は以下を行います:
ALTER TABLE mytable
ADD COLUMN new_column <type>
AFTER existing_column
ALTERは、列の順序は問題ではないためストレージまたはクエリのためにそれを行いません
SQL Serverの場合は、SSMSテーブルデザイナーを使用して列を配置する必要があります。これにより、テーブルを削除して再作成するスクリプトを生成できます。
2013年6月編集
ここで私の答えへのクロスリンク: SQL Server列を注文するときのパフォーマンス/スペースの意味?
それが可能だ。
まず、通常の方法で各列を追加します(最後の列として)。
第二に、SQL Server Management Studio
ツールに入る=>オプション。
[デザイナー]タブ=> [テーブルとデータベースデザイナー]メニューで、[テーブルの再作成が必要な変更を保存しない]オプションをオフにします。
その後、テーブルを右クリックして「デザイン」を選択します。 「デザイン」モードでは、列をドラッグして並べ替えるだけです。
保存することを忘れないでください。
SQLサーバーの列の順序を変更する場合、現在SQL Serverでこれを行う直接的な方法はありません。
http://blog.sqlauthority.com/2008/04/08/sql-server-change-order-of-column-in-database-tables/ をご覧ください
テーブルのデザインを編集しながら順序を変更できます。
最初に、SSMStudioを使用して新しい列を古いテーブルに追加します。データベース>>テーブル>>列に移動します。列を右クリックし、新しい列を選択します。ウィザードに従ってください。次に、次のように列を必要に応じて並べ替えて新しいテーブルを作成します。
select * into my_new_table from (
select old_col1, my_new_col, old_col2, old_col3
from my_old_table
) as A
;
次に、SSMStudioで必要に応じてテーブルの名前を変更します。データベース>>テーブル>>名前変更を選択します。
MS SQL Serverの場合、ALTER TABLE tablename ADD columnname INT
動作します。もちろん、MySQLのようにafter
コマンドを使用して特定の列の後に列を追加することはできません。