RaiseError e Concat para a Mensagem
-
03-07-2019 - |
Pergunta
Eu gostaria de fazer algo assim
raiserror(concat('Error in case @isFishy =', @isFishy, ' @isSmarmy=', @isSmarmy, ' @isTasty = ', @isTasty), 10, 1) --or raiserror('Error in case @isFishy =' + @isFishy + ' @isSmarmy=' + @isSmarmy + ' @isTasty = ' + @isTasty, 10, 1)
Mas ele simplesmente não está funcionando. Como faço para conseguir isso? Estou em SQL Server 2005.
Solução
A mensagem de erro no RAISERROR tem uma sintaxe realmente semelhante à função printf em C, assumindo assim os seus argumentos são do tipo de número inteiro que você precisaria usar:
raiserror(N'Error in case @isFishy = %d @isSmarmy = %d @isTasty = %d',10,1,@isFishy,@isSmarmy,@isTasty)
BOL para mais detalhes e outras opções
Outras dicas
Eu uso raiserror muito. Temos alguns procedimentos armazenados que são chamados a partir de um aplicativo .NET cada noite para processamento em lote, eo app .Net quer registrar a saída procedimento desta forma. Eu não sei porque, mas eu geralmente tem que construir a corda antes de chamar raiserror.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow