テーブルの列をテーブル定義順にリストする必要があります。
select * from syscolumns
where id = object_id('MyTable')
--order by colid
調べることでsyscolumns
、テーブルの2つの列は、関連を見て:colid
とcolorder
。syscolumnsに関するMSDNの記事によれば、
colid | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only.
| Not supported. Future compatibility is not guaranteed.
走ってみた
select * from syscolumns where colorder <> colid
これは行を生成しなかったので、これらの列にはほとんどの場合同じ値があると思います。
最も安全な方法は、colidを使用することです。しかし、私は知りたいと思います:これらの2つの列の間に違いはありますか、ある場合、この違いは何ですか?
また、MSDNの記事では、colidがテーブル定義の順序を反映していることは確認されていません。これが事実であると想定することは合理的ですが、そうであると確信している場合、どのようにこれがそうであるかをどのようにして知ることができますか?