Ich muss Spalten aus einer Tabelle in der Reihenfolge der Tabellendefinition auflisten:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
Bei der Untersuchung von syscolumns
Tabellen sehen zwei Spalten relevant aus: colid
und colorder
. Der MSDN-Artikel zu syscolumns lautet:
colid | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only.
| Not supported. Future compatibility is not guaranteed.
Ich habe versucht zu rennen
select * from syscolumns where colorder <> colid
Das ergab keine Zeilen, und das lässt mich denken, dass diese Spalten die meiste Zeit die gleichen Werte haben.
Es sieht so aus, als ob die sicherste Wette die Verwendung von Colid ist. Ich wäre jedoch neugierig zu wissen: Gibt es einen Unterschied zwischen diesen beiden Spalten, und wenn ja, was ist dieser Unterschied?
Auch der MSDN-Artikel bestätigt nicht, dass colid die Reihenfolge der Tabellendefinition widerspiegelt. Obwohl dies vernünftig ist anzunehmen, dass dies der Fall ist, können Sie mich bitte informieren, wenn Sie sicher sind , dass dies der Fall ist, woher wissen Sie, dass dies der Fall ist?
quelle