Вставка данных в базу данных sqlserver 2000, изменение порядка, почему? - PullRequest
1 голос
/ 13 января 2010

Вставить 200 данных через цикл for в базу данных sqlserver 2000, изменение порядка, почему?

Когда я использую mysql, это не имеет значения.

я имею в виду:

когда вы вставляете 2, затем вставляете 3, затем вставляете 1, в mysql вы увидите 2,3,1, как и порядок вставки.Но в sqlsever2000 этого может и не быть.

Ответы [ 4 ]

8 голосов
/ 13 января 2010

Порядок, в котором хранятся строки, на самом деле не имеет значения. На самом деле таблицы SQL не имеют никакого порядка. Если порядок важен для вас, вам необходимо выполнить запрос, используя предложение ORDER BY.

3 голосов
/ 13 января 2010

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

1 голос
/ 13 января 2010

Если у вас есть индекс в таблице, может показаться, что ваши данные упорядочены так, как вы этого не ожидали. Как правило, в качестве суррогатного первичного ключа у вас просто будет столбец идентификаторов, что означает, что вставленные вами данные будут отображаться в «порядке», если вы просто сделаете выбор *, но если у вас есть индексы для других столбцов, данные могут быть упорядочены по-другому. когда вы выбираете *.

0 голосов
/ 13 января 2010

Вы можете контролировать физическое упорядочение, создав кластеризованный индекс для этих столбцов.Для каждой таблицы допускается только один кластерный индекс.Индекс кластера: при выполнении SELECT вы всегда будете получать данные в порядке, который был определен при создании индекса кластера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...