Crie uma trigger de UPDATE para a tabela MOVIMENTOS. Verifique se o campo DATAMOVIMENTO foi alterado, e caso ele tenha sido alterado, emita uma mensagem de erro se a data for menor que a data atual.
Dados da tabela:
CREATE TABLE PESSOAS(
CODPESSOA VARCHAR(3) NOT NULL,
CPFCNPJ VARCHAR(14) NOT NULL,
NOME VARCHAR(100) NOT NULL,
DATANASCIMENTO DATETIME NOT NULL,
TIPOPESSOA CHAR(1) NOT NULL,
NUMEROFILHOS INT NOT NULL,
INDCLIENTEBANCO CHAR(1) NOT NULL,
TIPOLOGRADOURO VARCHAR(3) NULL,
BAIRRO VARCHAR(5) NULL,
CIDADE VARCHAR(50) NULL,
UF CHAR(2) NULL,
PAIS VARCHAR(50) NULL,
CEP CHAR(8) NULL,
)
CREATE TABLE CONTAS(
CODCOLIGADA VARCHAR(3) NOT NULL,
CODAGENCIA VARCHAR(5) NOT NULL,
NROCONTA VARCHAR(7) NOT NULL,
CODPESSOA VARCHAR(3) NOT NULL,
INDPOUPANCA CHAR(1) NOT NULL,
USUARIOINCLUSAO VARCHAR(100),
DATAINCLUSAO DATETIME,
USUARIOALTERACAO VARCHAR(100),)
CREATE TABLE MOVIMENTOS(
CODCOLIGADA VARCHAR(3) NOT NULL,
CODAGENCIA VARCHAR(5) NOT NULL,
NROCONTA VARCHAR(7) NOT NULL,
NROMOVIMENTO INT IDENTITY NOT NULL,
DATAMOVIMENTO DATETIME NOT NULL,
VALOR NUMERIC(17,2) NULL,
MORA NUMERIC(17,2) NULL,
MULTA NUMERIC(17,2) NULL,
DESCONTO NUMERIC(17,2) NULL,
DESCRICAO NUMERIC(17,2) NULL,
)
ALTER TABLE PESSOAS ADD CONSTRAINT VALIDA_TIPOPESSOA CHECK (TIPOPESSOA IN (‘F’,‘J’))
ALTER TABLE PESSOAS ADD CONSTRAINT DEF_VALOR DEFAULT(0) FOR NUMEROFILHOS
ALTER TABLE PESSOAS ADD CONSTRAINT PK_PESSOAS PRIMARY KEY (CODPESSOA)
ALTER TABLE CONTAS ADD CONSTRAINT PK_CONTAS PRIMARY KEY (CODCOLIGADA,CODAGENCIA,NROCONTA)
ALTER TABLE CONTAS ADD CONSTRAINT FK_CONTAS_PESSOA FOREIGN KEY (CODPESSOA) REFERENCES PESSOAS (CODPESSOA)
ALTER TABLE CONTAS ADD CONSTRAINT VALIDA_INDPOUPANCA CHECK (INDPOUPANCA IN(‘S’,‘N’))
ALTER TABLE MOVIMENTOS ADD CONSTRAINT PK_MOVIMENTOS PRIMARY KEY (CODCOLIGADA,CODAGENCIA,NROCONTA,NROMOVIMENTO)
ALTER TABLE MOVIMENTOS ADD CONSTRAINT FK_CODCOLIGADA_CONTAS FOREIGN KEY (CODCOLIGADA,CODAGENCIA,NROCONTA) REFERENCES CONTAS (CODCOLIGADA,CODAGENCIA,NROCONTA)