Como alguém faria para ter um sproc que permitisse a um consumidor especificar opcionalmente o número de linhas retornadas?
Se nenhuma contagem de linhas for especificada, todas as linhas serão retornadas.
Como alguém faria para ter um sproc que permitisse a um consumidor especificar opcionalmente o número de linhas retornadas?
Se nenhuma contagem de linhas for especificada, todas as linhas serão retornadas.
A maneira "mais fácil" é parametrizar a entrada para TOP. O número que estou usando é o valor máximo para BIGINT. Você provavelmente nunca terá mais linhas do que isso retornadas por uma consulta.
Apenas tome cuidado, porque você pode introduzir sintomas de detecção de parâmetros aqui.
Se você revisar os planos de ambos, o operador TOP de ambos estará esperando uma linha .
Qualquer entrada para o topo que seja executada primeiro será armazenada em cache, a menos que você recompile ou adicione uma dica OPTIMIZE FOR.
Você também deve estar ciente de que adicionar um operador TOP pode introduzir metas de linha .