CHECK em SQL DEVELOPER

Estou a tentar verificar se data inserida é inferior a data do sistema.
Mas esta a dar um erro . Alguem poderia ajudar-me ?

.

CREATE TABLE [dbo].[Computador] (
[IdComputador] [Chave] , – Igual numeric
[Ano] [Descricao4000] , ---- Igual varchar
CONSTRAINT PkComputador PRIMARY KEY CLUSTERED (IdComputador)
)
GO

ALTER TABLE Computador ADD CONSTRAINT Ano CHECK (Ano < GetDate() );
GO

Delete Computador;
GO

Insert into Computador values (1, 1967);
Select * from Computador;
GO

Insert into Computador values (2, 2016);
Select * from Computador;
GO

Insert into Computador values (3, 2017);
Select * from Computador;
GO

Insert into Computador values (4, 2021);
Select * from Computador;
GO

NA ULTIMA LINHA ACONTECE O ERRO DE ANO MAIOR QUE DATA CORRENTE. DEVE SER CRIADO ERRO DE RETORNO PARA ELE NAO ABENDAR E TERMINAR SEU PROGRAMA.

------------------- OU

CREATE TABLE [dbo].[Computador2] (
[IdComputador2] [Chave] ,
[Ano] [Descricao4000] ,
CONSTRAINT PkComputador2 PRIMARY KEY CLUSTERED (IdComputador2)
)
GO

CREATE FUNCTION fChecarData() RETURNS int
AS
BEGIN
DECLARE @Ret int
SELECT @Ret = COUNT(*) FROM Computador2 Where Ano > year(GetDate());
RETURN @Ret
END;
GO

ALTER TABLE Computador2 ADD CONSTRAINT chkComputador2 CHECK (dbo.fChecarData() >= 1 );
GO