web-dev-qa-db-ja.com

ALTER TABLE my_table ADD COLUMN column_name VARCHAR(50)AFTER col_name not support in SQL Server 2000

SQL Server 2000で次のクエリを試し、上記の列の後に新しい列を追加できるようにしました。

alter table abc ADD dad varchar(50) after parentname

しかし、それは私に次のエラーメッセージをスローします

メッセージ170、レベル15、状態1、行1
1行目:「後」の近くの構文が正しくありません。

SQL Server 2000でこれを行う方法はありますか?

5
Brainser

SQL Serverには、そのような構文はありません。

使用するだけ

ALTER TABLE abc ADD dad varchar(50)
9
pinaldave

簡単な答え:テーブルに順序はありません。

テーブルはレコードのセット(順序付けられていないコレクション)であり、各レコードはフィールドのセットです。これが、RDBMS理論が「行」と「列」ではなく「レコード」と「フィールド」という単語を好む理由です。

データのページを見ると(たとえば、MSSQLでDBCC PAGEを使用して)、フィールドの格納順序がCREATETABLEステートメントで指定した順序に対応していないことがわかります。

順序付けは、SELECTステートメントによって課されます。

私のアドバイスは、CREATE TABLEのすっきりさにエネルギーと時間を費やすのをやめ、代わりにSELECTステートメントに費やすことです。

7