Estou executando um arquivo em lotes que inicia um script SQLCMD que cria um trabalho de agente do TFS Release Manager.
O script atribui parâmetros SQLCMD a variáveis, lista as variáveis usando selects e exibe alguns comentários na execução do script em todo o script.
Parece algo assim:
SET NOCOUNT ON
DECLARE
@Var1 NVARCHAR(100) = '$(Var1)'
,@Var2 NVARCHAR(100) = '$(Var2)'
SELECT '@Var1' AS VarName,@Var1 AS VarValue
UNION ALL
SELECT '@Var2',@Var2
PRINT 'Do the first thing'
--delete sql agent job
PRINT 'Do the next thing'
--create sql agent job
PRINT 'Do the last thing'
--add steps
De vez em quando, na saída, vejo as mensagens PRINT no meio da saída SELECT.
Existe uma maneira de garantir a ordem dessas mensagens?
PRINT
saída pode ser armazenada em buffer. Uma ótima maneira de contornar isso é usarRAISERROR (@msg, 0, 1) WITH NOWAIT;
em vez disso.Por exemplo: