Tôi cần liệt kê các cột từ một bảng theo thứ tự định nghĩa bảng:
select * from syscolumns
where id = object_id('MyTable')
--order by colid
Bằng cách kiểm tra syscolumns
các bảng hai cột có liên quan: colid
và colorder
. Bài viết MSDN về syscolumns nói:
colid | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only.
| Not supported. Future compatibility is not guaranteed.
Tôi đã cố chạy
select * from syscolumns where colorder <> colid
điều này không mang lại hàng nào và điều đó khiến tôi nghĩ rằng các cột này có cùng giá trị hầu hết thời gian.
Có vẻ như đặt cược an toàn nhất là sử dụng colid. Tuy nhiên tôi sẽ tò mò muốn biết: có sự khác biệt giữa hai cột này không, và nếu có, sự khác biệt này là gì?
Ngoài ra, bài viết MSDN, không xác nhận, rằng colid phản ánh thứ tự của định nghĩa bảng. Mặc dù điều này là hợp lý để cho rằng đây là trường hợp, bạn có thể vui lòng cho tôi biết, nếu bạn chắc chắn rằng đó là trường hợp, làm thế nào bạn biết rằng đây là?