2012-05-12 4 views
2

Мне нужно иметь возможность выбирать определенный ряд строк из таблицы с использованием SQL.Как выполнить подкачку на стороне сервера в SQL Server 2005

Какую команду TSQL я должен использовать для выполнения подкачки на стороне сервера?

Я не занимаюсь поиском на стороне сервера? Я хочу, чтобы выбрать первые 10 строк из таблицы и сделать некоторые расчеты

cmd.commandText :="select top 10 from table " 
ada.fill(dt) 
for each(datarow dtr in dt.rows) 
{ 
//calulation 
} 

, то я хочу, чтобы выбрать следующие 10 строк и то же повторять до конца таблицы

+0

нет поля ID в таблице – dfgv

+1

Взгляните в верхней части и пропустить ключевые слова ... – JleruOHeP

+0

Так что это фактически о * партиях * не подкачки. Возможно, вам захочется рассмотреть этот вид обработки внутри SQL Server напрямую, а не получать данные в ваше приложение. Учтите, что строки, которые вы извлекли, могли бы измениться, когда они обрабатывали их в вашем приложении. – Filburt

ответ

0

Вы должны использовать ROW_NUMBER для достижения этой цели , Посмотрите на link на использование ROW_NUMBER на пейджинге.

+0

Я видел это раньше, но я не знаю, как это сделать в C# – dfgv

3

Microsoft представила ROW_NUMBER() в SQL Server 2005, чтобы помочь с подкачкой ...

SELECT * FROM (  
    SELECT   
    ROW_NUMBER() OVER (ORDER BY City) AS row, * 
    FROM Cities 
) AS a WHERE row BETWEEN 1 AND 10 

Используйте переменную для 1 и 10, чтобы динамически получить следующий набор.

create proc dbo.whatever_select_paging 
    @int page 
as 

SELECT * FROM (  
    SELECT   
    ROW_NUMBER() OVER (ORDER BY City) AS row, * 
    FROM Cities 
) AS a WHERE row BETWEEN ((@page-1) * 10) +1 AND (@page * 10)-1 

go 
+0

нет, что случилось, мой вопрос изменился? кто изменил админ? – dfgv

+0

@eldhose - Джош отредактировал его, потому что было неясно. Кажется, он удалил все упоминания о «C#» или о том, что вы хотите сделать это, чтобы обработать 2 миллиона строк в своей ревизии. Что именно вы делаете, что вам нужно обработать 2 миллиона строк в партиях по 10 с помощью 'C#'? –

+0

нет просто примера, я сказал 10 в моей таблице 220000 строк там я хочу обработать эти все данные в цикле – dfgv

-1
SELECT TOP 20 FROM MyData 
WHERE orderNum <= 61 
ORDER BY orderNum DESC 

Это позволит получить 20 строк, начиная со строки 61 через грести 80 (может получить больше, чем 20, если вы дублировали значения orderNum)

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