我需要按表定义顺序列出表中的列:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
通过检查syscolumns
表格,两列看起来很相关: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。但是,我很想知道:这两列之间是否有区别,如果有区别,那有什么区别?
同样,MSDN文章(未确认)colid反映了表定义的顺序。尽管可以合理地假设情况确实如此,但如果您确定情况确实如此,您能告诉我吗?