Quiero escribir una función no CLR definida por el usuario en SQL Server 2005. Esta función toma una cadena de entrada y devuelve una cadena de salida. Si la cadena de entrada no es válida, entonces quiero indicar un error a la persona que llama.Error al manejar funciones definidas por el usuario
Mi primer pensamiento fue utilizar RAISERROR para generar una excepción. Sin embargo, SQL Server no permite esto dentro de una UDF (aunque puede generar excepciones en UDF basadas en CLR, vaya a la figura).
Mi último recurso sería devolver un NULL (o algún otro valor de indicador de error) de la función si el valor de entrada es erróneo. Sin embargo, no me gusta esta opción, ya que:
- No proporciona ninguna información útil para la persona que llama
- no me permite devolver un valor NULL en respuesta a una entrada válida (ya que se usa como un código de error).
¿Hay alguna manera amigable para detener una función en un error en SQL Server?
Lo esperaba tanto, pero pensé en preguntar. Gracias. –
El problema con los sprocs es que no puede llamarlos en línea de la forma en que lo hace con las funciones. –
Estoy de acuerdo con @MikeK. La razón por la que estoy usando el UDF y no un procedimiento almacenado completo es para el uso en línea. ¿La respuesta a esta pregunta ha cambiado en las versiones más nuevas de SQL Server? (por ejemplo, 2016) – ColinMac