TOP по сравнению с НАБОРОМ ROWCOUNT

Посмотрите, работает ли это

=ArrayFormula(vlookup(timevalue(A2), {iferror(value(regexextract(TimeSlots!A2:A, "(.+)\s-"))),TimeSlots!B2:C}, {2, 3}, 1)) 
13
задан Garry Shutler 22 January 2009 в 11:32
поделиться

1 ответ

Да, функционально они - то же самое. Насколько я знаю, что между двумя нет никаких значительных различий в производительности.

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


РЕДАКТИРОВАНИЕ (добавляют комментарий Martin),

Объем SET ROWCOUNT для текущей процедуры только. Это включает процедуры, названные текущей процедурой. Это также включает динамический SQL, выполняемый через EXEC или SP_EXECUTESQL так как их считают "дочерними" объемами.

Заметьте это SET ROWCOUNT находится в a BEGIN/END объем, но это расширяется кроме того.

create proc test1
as
begin
    begin
    set rowcount 100
    end
    exec ('select top 101 * from master..spt_values')
end
GO

exec test1
select top 102 * from master..spt_values

Результат = 100 строк, затем 102 строки

11
ответ дан 2 December 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: