SQL2000: порядок столбцов по умолчанию при выборе из системных столбцов

#sql #database #sql-server-2000 #sql-order-by

#sql #База данных #sql-server-2000 #sql-order-by

Вопрос:

Я запускаю следующий запрос:

 select syscolumns.name 
from syscolumns,sysobjects
where 
syscolumns.id = sysobjects.id and 
sysobjects.name='TABLE_NAME'
  

Что может быть причиной того, что в одной системе столбцы возвращаются в алфавитном порядке, а в другой они возвращаются в том порядке, в котором столбцы были добавлены в таблицу?

Я знаю, что не должен полагаться на порядок по умолчанию, и я должен использовать ORDER BY , но я хочу знать, почему это так. Параметры сортировки?

Спасибо!

Комментарии:

1. Порядка по умолчанию не существует — вы видите то, что ожидается — в зависимости от любого количества влияющих факторов порядок возвращаемых строк может отличаться от случая к случаю. Это может быть связано с расположением страниц, с которых SQL Server считывает эти данные, или многими другими факторами — если вам нужен порядок, запросите его по ORDER BY — это действительно все, что нужно знать

2. @marc_s: вы должны сделать это ответом

Ответ №1:

Нет порядка по умолчанию, на который вы могли бы «положиться», если вы явно не укажете ORDER BY .

То, что вы видите, является ожидаемым поведением; в зависимости от любого количества влияющих факторов порядок возвращаемых строк может отличаться от случая к случаю, от сервера к серверу.

Это может быть связано с расположением страниц, которые SQL Server считывает с диска, или многими другими факторами.

Вкратце: если вам нужен порядок, запросите его по ORDER BY — это действительно все, что нужно знать.

Комментарии:

1. Спасибо. Я понимаю это, я просто не понимаю, почему некоторые конкретные машины ВСЕГДА возвращают результаты в алфавитном порядке.