Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Posso imprimir imediatamente para cada iteração em um loop?


Não tão longe quanto o que sei.

Já foi relatado no Connect. Consulte RAISERROR WITH NOWAIT não homenageado no SQLCMD11

mas atualmente não é fixo.

Suponho que você poderia adicionar um SELECT lá do tamanho do pacote de rede (ou aumente o tamanho da mensagem existente) para liberar o buffer como uma solução alternativa.

Por exemplo
DECLARE @i INT = 0;

WHILE @i < 5
  BEGIN
      -- poll async operation status here
      SET @i = @i + 1;

      PRINT 'status is ' + CAST(@i AS VARCHAR(10)) + SPACE(4000);

      WAITFOR DELAY '00:00:01';
  END;