A.Farzin
جمعه 01 آذر 1387, 21:05 عصر
با سلام
فرض كنيد جدولي داريم حاوي 000ر500 ركورد. ميخواهيم با يك SELECT تعداد n تا از جديدترين مقادير اضافهشده به جدول را استخراج كنيم. براي اين منظور از دستور زير استفاده ميكنيم.
ُSELECT TOP 50 * FROM MyTable ORDER BY NEWID()
علت اين كار سرعت دادن به فراخواني اطلاعات از سرور است ولي ممكن است در طرف كلاينت به تمام ركوردهاي منطبق با شروط WHERE نياز باشد. در اين حالت فقط 50 تاي آخر به كاربر نشان داده ميشود.
با چه مكانيزمي ميتوان كاري كرد كه وقتي كاربر 50 ركورد اول داده شده به او را پيمايش كرد و روي ركورد اول ديتاست 50 ركورد اول قرار گرفت، مقدار n به 100 تغيير كند و 50 كورد ديگر هم به ديتاست وي اضافه شود. به همين ترتيب وقتي روي كورد اول ديتاست 100 ركورد اول قرار گرفت باز هم مقدار n به 150 تغيير كند و ...
به عبارت ديگر مقدار n محدود و ثابت نباشد و بنا به خواست كلاينت n تا n تا به همان ديتاست افزوده شود و بدين شكل تمام 100% كوردها در صورت لزوم در اختيار كاربران قرار خواهد گرفت.
فرض كنيد جدولي داريم حاوي 000ر500 ركورد. ميخواهيم با يك SELECT تعداد n تا از جديدترين مقادير اضافهشده به جدول را استخراج كنيم. براي اين منظور از دستور زير استفاده ميكنيم.
ُSELECT TOP 50 * FROM MyTable ORDER BY NEWID()
علت اين كار سرعت دادن به فراخواني اطلاعات از سرور است ولي ممكن است در طرف كلاينت به تمام ركوردهاي منطبق با شروط WHERE نياز باشد. در اين حالت فقط 50 تاي آخر به كاربر نشان داده ميشود.
با چه مكانيزمي ميتوان كاري كرد كه وقتي كاربر 50 ركورد اول داده شده به او را پيمايش كرد و روي ركورد اول ديتاست 50 ركورد اول قرار گرفت، مقدار n به 100 تغيير كند و 50 كورد ديگر هم به ديتاست وي اضافه شود. به همين ترتيب وقتي روي كورد اول ديتاست 100 ركورد اول قرار گرفت باز هم مقدار n به 150 تغيير كند و ...
به عبارت ديگر مقدار n محدود و ثابت نباشد و بنا به خواست كلاينت n تا n تا به همان ديتاست افزوده شود و بدين شكل تمام 100% كوردها در صورت لزوم در اختيار كاربران قرار خواهد گرفت.