web-dev-qa-db-ja.com

SQL Server 2005の既存の列の後に新しい列を追加するSQLクエリ

既存の列の後に新しい列を追加するSQLクエリが必要なので、列は特定の順序で追加されます。

それを行うALTERクエリがある場合、私に提案してください。

44
Aayushi

Microsoft SQL(AFAIK)では、テーブルを変更して特定の列の後に列を追加することはできません。最善の策は、SQL Server Management Studioを使用するか、テーブルをドロップして再追加するか、新しいテーブルを作成してデータを手動で移動することです。どちらも非常に優雅ではありません。

MySQL は以下を行います:

ALTER TABLE mytable
ADD COLUMN  new_column <type>
AFTER       existing_column
39
Brad Christie

ALTERは、列の順序は問題ではないためストレージまたはクエリのためにそれを行いません

SQL Serverの場合は、SSMSテーブルデザイナーを使用して列を配置する必要があります。これにより、テーブルを削除して再作成するスクリプトを生成できます。

2013年6月編集

ここで私の答えへのクロスリンク: SQL Server列を注文するときのパフォーマンス/スペースの意味?

21
gbn

それが可能だ。

まず、通常の方法で各列を追加します(最後の列として)。

第二に、SQL Server Management Studioツールに入る=>オプション。

[デザイナー]タブ=> [テーブルとデータベースデザイナー]メニューで、[テーブルの再作成が必要な変更を保存しない]オプションをオフにします。

その後、テーブルを右クリックして「デザイン」を選択します。 「デザイン」モードでは、列をドラッグして並べ替えるだけです。

保存することを忘れないでください。

15
ilans

SQLサーバーの列の順序を変更する場合、現在SQL Serverでこれを行う直接的な方法はありません。

http://blog.sqlauthority.com/2008/04/08/sql-server-change-order-of-column-in-database-tables/ をご覧ください

テーブルのデザインを編集しながら順序を変更できます。

3
ashish.chotalia

最初に、SSMStudioを使用して新しい列を古いテーブルに追加します。データベース>>テーブル>>列に移動します。列を右クリックし、新しい列を選択します。ウィザードに従ってください。次に、次のように列を必要に応じて並べ替えて新しいテーブルを作成します。

select * into my_new_table from (
select old_col1, my_new_col, old_col2, old_col3
from my_old_table 
) as A
;

次に、SSMStudioで必要に応じてテーブルの名前を変更します。データベース>>テーブル>>名前変更を選択します。

2
wwmbes

MS SQL Serverの場合、ALTER TABLE tablename ADD columnname INT 動作します。もちろん、MySQLのようにafterコマンドを使用して特定の列の後に列を追加することはできません。

0
Curiousity