Muszę wyświetlić kolumny z tabeli w kolejności definicji tabeli:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
Analizując syscolumns
tabele, dwie kolumny wydają się odpowiednie: colid
i colorder
. Artykuł MSDN na temat syscolumns mówi:
colid | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only.
| Not supported. Future compatibility is not guaranteed.
Próbowałem biec
select * from syscolumns where colorder <> colid
który nie dał żadnych wierszy, i to sprawia, że myślę, że te kolumny przez większość czasu mają takie same wartości.
Wygląda na to, że najbezpieczniejszym zakładem jest użycie colid. Chciałbym jednak wiedzieć: czy istnieje różnica między tymi dwiema kolumnami, a jeśli tak, to na czym polega ta różnica?
Również artykuł MSDN nie potwierdza, że colid odzwierciedla kolejność definicji tabeli. O ile uzasadnione jest założenie, że tak jest, proszę o informację, jeśli tak, to czy wiesz, że tak jest?
źródło