テーブル内の列の順序の変更

適用対象:SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

列の順序は、SQL Server Management Studio (SSMS) の Table Designer で変更できます。 既定では、SSMS の安全メカニズムによって列の順序の変更がブロックされます。 推奨されませんが、テーブルを再作成することで、テーブル内の列の順序を変更できます。

推奨されているように、既定でテーブルに列を追加すると、テーブルの末尾に列が追加されます。

推奨事項

テーブル列の順序に関するベスト プラクティス:

  • 結果セット、レポート、またはアプリケーションに表示される列の順序を変更するには、 SELECT (Transact-SQL) ステートメントで列の順序を使用します。 クエリまたはアプリケーションでは必ず、表示される順序で列の名前を指定してください。
  • アプリケーションでは を使用 SELECT * しないでください。 列を追加または削除すると、アプリケーションで予期しない動作やエラーが発生する可能性があります。
  • テーブルの末尾に新しい列を追加します。

注意事項

テーブルの列の順序を変更すると、特定の列の順序に依存するコードやアプリケーションに影響する場合があります。 これには、クエリ、ビュー、ストアド プロシージャ、ユーザー定義関数、およびクライアント アプリケーションが含まれます。 列の順序を変更する場合は、慎重に検討してください。

SQL Server Management Studio の使用 [SQL Server]

列の順序を変更する。

推奨されませんが、SQL Server Management Studio (SSMS) を使用してテーブル内の列の順序を変更できます。 これには、テーブルを再作成する必要があります。

重要

常に最新バージョンのSQL Server Management Studio (SSMS) を使用します。

  1. オブジェクト エクスプローラーで、並べ替える列が含まれているテーブルを右クリックし、 [デザイン] を選択します。

  2. 順序を変更する列の名前の左側にあるボックスを選択します。

  3. その列をテーブル内の別の場所にドラッグします。

設定 [テーブルの再作成を必要とする変更を保存できないようにする] によって制御される、SSMS の重要な安全機能により、これらの変更がブロックされる場合があります。 この設定は、SSMS ダイアログを使用してテーブルを誤って削除または再作成しないようにするために有効になっています。これにより、中断が発生し、メタデータまたはアクセス許可が失われる場合があります。 詳細については、 SSMS の「変更の保存は許可されていません」というエラー メッセージを参照してください。 代わりに、アクセス許可とメタデータを考慮した Transact-SQL ステップを使用して、影響を十分に認識して、これらの種類の変更を実行することをお勧めします。

注意事項

テーブルを再作成すると、他のユーザーとアプリケーションのテーブルへの同時アクセスがブロックされます。 テーブルが大きい場合、これには長い期間と大量のトランザクション ログ領域が必要になる場合があります。

Transact-SQL の使用

Transact-SQL ステートメントを使用した列の順序の変更はサポートされていません。 列の順序を変更するには、テーブルを削除して再作成する必要があります。

解説

既存の列に対してクエリを実行するには、sys.columns オブジェクト カタログ ビューを使います。

次のステップ