Solución:
La función debe ser la única función en la ventana de consulta O la única declaración en el lote. Si hay más declaraciones en la ventana de consulta, puede convertirla en la única “en el lote” rodeándola con GO.
p.ej
GO
CREATE FUNCTION getLavel(@id int ,@lavel char)
RETURNS date
BEGIN
DECLARE @date date
select @date = (select authorization_date from Authorized WHERE diver_number = @id and @lavel =level_name)
return @date
END
GO
Convierta esto en una función con valores de tabla en línea. Esto funcionará mejor que la función escalar. Además, NO debe utilizar los tamaños predeterminados para los tipos de datos de caracteres. ¿Sabes cuál es la longitud predeterminada de un carácter? ¿Sabías que puede variar según el uso?
CREATE FUNCTION getLavel
(
@id int
, @lavel char --You need to define the length instead of the default length
)
RETURNS table
return
select authorization_date
from Authorized
WHERE diver_number = @id
and @lavel = level_name
GO
Debe agregar RETURN antes de la instrucción END
Eso debería solucionar tu problema, eso es lo que solucionó el mío. 😀
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)