Мені потрібно перерахувати стовпці з таблиці в порядку визначення таблиці:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
Вивчаючи syscolumns
таблиці, два стовпці виглядають актуальними: colid
і colorder
. У статті 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 не підтверджує, що коллід відображає порядок визначення таблиці. Хоча розумно припустити, що це так, ви можете, будь ласка, повідомити мене, якщо ви впевнені, що це так, як ви знаєте, що це?