try transaction lanzar generate excepcion error catch sql-server raiserror

sql server - transaction - ¿Qué significan los diferentes niveles de severidad de RAISERROR?



throw error sql server (1)

Mi mejor resultado en google fue this :

  • debajo de 11 hay advertencias, no errores
  • 11-16 están disponibles para su uso
  • por encima de 16 son errores del sistema
  • no hay diferencia de comportamiento entre 11-16

Pero, desde BOL, "los niveles de gravedad de 0 a 18 pueden ser especificados por cualquier usuario".

En mi procedimiento almacenado particular, quiero que se devuelva el error a una aplicación de cliente .Net, por lo que parece que cualquier nivel de gravedad entre 11 y 18 haría el truco. ¿Alguien tiene alguna información autorizada sobre lo que significa cada uno de los niveles y cómo deberían usarse?


Niveles de gravedad de motor de base de datos

Debería devolver 16. Es el nivel de error predeterminado y más utilizado:

Indica errores generales que pueden ser corregidos por el usuario.

No devuelva 17-18, esos indican errores más graves, como problemas de recursos:

Indique los errores de software que no pueden ser corregidos por el usuario. Informe al administrador del sistema del problema.

Además, no devuelva 11-15 porque tienen un significado especial asociado a cada nivel (14 - acceso de seguridad, 15 - error de sintaxis, 13 - punto muerto, etc.).

El nivel 16 no finaliza la ejecución.

Cuando su intención es registrar una advertencia pero continuar la ejecución, utilice un nivel de gravedad inferior a 10 en su lugar.