Pregunta

Estamos utilizando SQL 2005 y la funcionalidad try-catch para manejar todo nuestro manejo de errores dentro de la base de datos.Actualmente estamos trabajando en la implementación de una función .NET CLR para realizar algunas llamadas WCF en la base de datos.Este procedimiento WCF se escribe en CLR y luego se implementa en SQL.Si pongo un bloque try-catch en el código CLR, detecta bien el error.Sin embargo, parece que no puedo enviar el error al bloque try-catch en SQL.SQL parece ignorar lo que le lanzo y detecta el error que encuentra.¿No hay relación entre los dos (es decir,¿No puedo tirar de uno a otro?)

Si puedo lanzar desde CLR al procedimiento de llamada en SQL, ¿se necesita algún formato especial?Intenté un caso específico de detectar el error que se produjo y luego arrojar un error diferente, pero SQL ignoró mi error y detectó el error original, como si ignorara el error.

¿Fue útil?

Solución

Aquí hay una publicación de blog que lo cubre a un alto nivel:Manejo de excepciones en SQLCLR

Cuando el servidor SQL ejecuta una función/procedimiento/activador de usuario implementado en CLR (es decir, código administrado), instalaremos un controlador de excepciones administrado alrededor del código de usuario.Entonces, si el código de usuario filtró una excepción, el servidor la detectará y generará una excepción TSQL que envuelve la excepción del usuario.

Esto parece implicar que simplemente funcionará.

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