2012-01-24 9 views
2

SQL Server 2005では、1つ以上の列を特定の順序(X列の後など)に含める方法はありますか。または、マスター、またはsysobject、またはMODIFYコマンドを変更するような何か?SQL Server 2005 - 列後のテーブルの変更

てください:

ないようにMySQLAFTER COLUMNが動作しません)

TABLEをTABLEは、CREATE落とさない(私は下に置くアプリケーションなしで本番でこのオプションを実装することはできません)

私はアプリケーションに触れることはできません。私のAPPまたはAPPではありません。

私はからアプリケーションのどこかに存在する場合SELECT *があるを知ることができないので私はYES、があることを前提としなければなりません。

いいえ、欲求ではない、特定の要件、テーブルがジョブを介して外部ソース(APP)からフィードを取得しています。

+5

リレーショナル表内の列の順序は関係ありません - それは機能性に与える影響はありません - それは純粋に「化粧品」のことです。したがって、SQL Serverは、列を並べ替えるためのT-SQLコマンドを持っていません。 SQL Serverでこれを行う**唯一の方法**は、必要な順序で列が列挙されたテーブルを再作成することです。 –

+2

もちろん、希望する列の順序でビューを作成することもできます。なぜそれは重要ですか?関連する列を一緒に見たいだけですか? –

+0

Management Studioで何十もの列を持つテーブルを探しているのは嫌です。 – DOK

答えて

7

最後に列を追加することができます。

さらに、それは短時間スキーマ変更ロックを使用するため、非常に機密性の高い運用環境では、これに注意する必要があります。

http://msdn.microsoft.com/en-us/library/ms190273.aspx

+0

また、ページの分割やポインタのためにパフォーマンスの問題につながります。 – JNK

+0

どうもありがとうございました –

+0

@Leandroなぜ新しい列が特定の順序で挿入される必要があるのか​​わからなくても、私はさらに助けません。これは、アプリケーション/ユーザーにテーブルレベルのアクセスを与えることが危険な理由の1つです。アプリ/ユーザにストアドプロシージャとビューのアクセスのみを与えることで、基礎となるテーブル構造が抽象化され、リファクタリングが容易になります。 –

1

アプリが特定の列の順序に依存する場合は、列の順序を変更するのではなく、アプリケーションを修正することができます。

RDBMS操作の原則のいくつかは、他のものよりもよく理解されています。また、1NFのすべての定義は同意できますが、その列の順序は意味をなさないとみなされます。

+0

私は知っていますが、私はこれを直接行うことはできません、それは私のアプリではありません –