質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

23608閲覧

SQL Serverでカラムをテーブルの任意の位置に追加する方法

ms5025

総合スコア292

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2018/12/13 00:55

SqlServerでカラムをテーブルの任意の位置に追加する方法はありますか?
ALTER TABLE AFTER のような。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SQL Server Management Studioを使えば出来るらしいですが、任意の位置に追加するというより表示する際の並び順を指定している形っぽいですね。
上記のリンク先にあるように、仮にselect * で取得した時に、カラムの出現順序が必ずテーブル定義通りであると盲信した設計を行うのは問題があると思います。

投稿2018/12/13 01:06

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ms5025

2018/12/13 04:36

?? ? ごめんなさい。こっちの意図が伝わらなかったかもしれません。 テーブル定義が変わったので、列追加しようと思いまして Oracleと同じくalterでafterつけて思う位置に列挿入しようとしたんですが どうやらsqlserverでは調べたらできないぽかったんで。 createしなおさないとダメなのかなと思いまして。 テーブル定義で列順序は見栄え的に絶対必要だと思うので (create_date、update_Date列は一番右端、とかいうその会社独自の決まりみたいなのもありますから)
kunai

2018/12/13 04:44

まず前半についてはそのとおりです。 厳密に定義順とするためには、再度Createが必要になります。 後半については、つまりそのことを先の回答で指摘しておりまして。 アプリケーション側で並び順を明示して取得すれば、DB内部の定義順はどうでもいい話ですし、逆に定義順の通りに取得できる前提でアプリケーションを構築するのは危険だと言うことです。 (定義順に取得できる事は誰も保証しません) 見栄え的に絶対かどうかは、そのシステムの責任者が決めることですので、相談してみてください。 私だったら、定義順を揃えるということと、そのためだけに本番サービスを止めるレベルのメンテナンスを必要とし、既存データを失うリスクを伴うことを考えれば、そんな見栄えはどうでもいい話だと一笑に付します。 テーブルの定義順を眺めるのは開発者側ですが、データを失ったり本番サービスの停止等のリスクを負うのはシステムの利用者側です。
guest

0

自己解決

Transact-SQL の使用
列の順序を変更するには

Transact-SQL ステートメントを使用して、このタスクを実行することはできません。

とのことでした。

投稿2018/12/13 04:39

ms5025

総合スコア292

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問