Estou a tentar verificar se data inserida é inferior a data do sistema.
Mas esta a dar um erro . Alguem poderia ajudar-me ?
.
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