Pregunta

Me gustaría hacer algo como esto

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)

Pero simplemente no está funcionando. ¿Cómo logro esto? Estoy en SQL Server 2005.

¿Fue útil?

Solución

El mensaje de error en RAISERROR tiene en realidad una sintaxis similar a la función printf en C, por lo que, asumiendo que sus argumentos son del tipo de entero que necesitaría usar:

raiserror(N'Error in case @isFishy = %d @isSmarmy = %d @isTasty = %d',10,1,@isFishy,@isSmarmy,@isTasty)

revise BOL para obtener detalles y otros opciones

Otros consejos

Uso raiserror mucho. Tenemos algunos procedimientos almacenados que se llaman desde una aplicación .Net cada noche para el procesamiento por lotes, y la aplicación .Net desea registrar el resultado del procedimiento de esta manera. No sé por qué, pero generalmente tengo que construir la cadena antes de llamar a raiserror.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top