Devo elencare le colonne da una tabella nell'ordine di definizione della tabella:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
Esaminando le syscolumns
tabelle, due colonne sembrano rilevanti: colid
e colorder
. L'articolo di MSDN su syscolumns dice:
colid | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only.
| Not supported. Future compatibility is not guaranteed.
Ho provato a correre
select * from syscolumns where colorder <> colid
che non ha prodotto righe e che mi fa pensare che queste colonne abbiano gli stessi valori il più delle volte.
Sembra che la scommessa più sicura sia usare il colid. Tuttavia sarei curioso di sapere: c'è una differenza tra queste due colonne, e se c'è, qual è questa differenza?
Anche l'articolo MSDN, non conferma, che colid riflette l'ordine della definizione della tabella. Mentre è ragionevole supporre che sia così, potresti per favore farmi sapere, se sei sicuro che sia così, come sai che è così?