hola.
siempre va a ser true cuando sean igual pues tu condición así lo indica (SOLO MENORES, en ninguna parte excluyes MENORES E IGUALES.
ahora yo que tu igualaría los tipos de datos, pero insisto en mi primera observación.
Código SQL:
Ver originalIF CONVERT (VARCHAR, @fecha,111) < CONVERT (VARCHAR, GetDate(),111)
BEGIN
RAISERROR('La fecha es anterior al dia actual.', 16, 1)
RETURN -1
END