2013-10-15 3 views
0

Мне нужно будет реализовать эквивалент LIMIT (от mysql) до MSSQL. Здесь я нашел много тем, которые отвечают на эту проблему, но все требуют, чтобы вы заказывали определенный столбец. Мне нужно сделать это, не заказывая таблицу, потому что мой код проходит через множество таблиц автоматически, поэтому имена таблиц/столбцов меняются из таблицы в таблицу, и я не знаю, какую таблицу можно использовать для правильного упорядочения.LIMIT эквивалент в MSSQL без наличия столбца для заказа

причина этого заключается в том, что я обработки ОГРОМНОЕ таблицу в vb.net и adapter.Fill(ds_values) причины, чтобы выйти из памяти, так что я должен был бы обработать таблицу в куски 1000 строк в то время ..

Любая помощь оценивается.

БЛАГОДАРЯ

ответ

1

Там нет никакого способа узнать, в каком порядке записи, где вставленные если вы не имеете столбец, указывающий, что. Это не то, как работают двигатели БД.

Алгоритм алгоритма БД пытается получить данные как можно быстрее. И он не заботится о заказе, если вы его не укажете.

+0

Я думаю, что мне что-то не хватает ... какой порядок они считывают, когда я выполняю запрос без функции заказа? я думал, что последние entreis добавлены в конце ... – sharkyenergy

+0

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

+0

@sharkyenergy Нет гарантии на заказ * кроме * когда присутствует 'ORDER BY'. Результаты, как правило, будут упорядочены на основе некоторого физического макета (возможно, с кластеризованным индексированием), но точно, что и как, зависит от того, что чувствовал себя планировщик запросов. – user2864740

Смежные вопросы