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.

Foi útil?

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
scroll top