Fórum HEEEELP - ERRO NA CRIAÇÃO DE TRIGGER #598301

31/10/2018

0

Olá!
Sou estudante e estou iniciando aprendizado em SQL Server.
Estou com problemas na criação de uma Trigger...
Quero que assim que seja feito o INSERT em uma tabela, altere o status de outra...

Segue o código das tabelas:

CREATE TABLE QUARTO(
COD_QUARTO TINYINT NOT NULL, --PRIMARY KEY
NUM_QUARTO VARCHAR(4) NOT NULL,
COD_TIPO_QUARTO TINYINT NOT NULL, --PRIMARY KEY/FOREIGN KEY
COD_PADRAO_QUARTO TINYINT NOT NULL, --PRIMARY KEY/FOREIGN KEY
DISPONIBILIDADE_SN CHAR(1) NOT NULL);

CREATE TABLE RESERVA(
COD_RESERVA INT NOT NULL, --PRIMARY KEY
NUM_PESSOA TINYINT NOT NULL,
DTA_ENTRADA DATE NOT NULL,
DTA_SAIDA DATE NOT NULL,
COD_FUNCIONARIO INT NOT NULL, --FOREIGN KEY
COD_HOSPEDE INT NOT NULL); --FOREIGN KEY

CREATE TABLE QUARTO_RESERVA(
COD_QUARTO TINYINT NOT NULL, --PRIMARY KEY/FOREIGN KEY
COD_RESERVA INT NOT NULL, --PRIMARY KEY/FOREIGN KEY
COD_TIPO_QUARTO TINYINT NOT NULL, --PRIMARY KEY/FOREIGN KEY
COD_PADRAO_QUARTO TINYINT NOT NULL); --PRIMARY KEY/FOREIGN KEY

Segue a trigger:

GO
CREATE TRIGGER TGR_QUARTO_AI
ON QUARTO_RESERVA
FOR INSERT
AS BEGIN
DECLARE
@DISPONIBILIDADE_SN CHAR(1),
@COD_QUARTO INT
SELECT @DISPONIBILIDADE_SN = DISPONIBILIDADE_SN, @COD_QUARTO = COD_QUARTO FROM INSERTED
UPDATE QUARTO SET DISPONIBILIDADE_SN = ''N''
WHERE COD_QUARTO = @COD_QUARTO
END

O erro retornado:
Msg 207, Nível 16, Estado 1, Procedimento TGR_QUARTO_AI, Linha 8 [Linha de Início do Lote 88]
Nome de coluna ''DISPONIBILIDADE_SN'' inválido.

Não estou conseguindo compreender o erro, alguém poderia ajudar?
Fernando Araujo

Fernando Araujo

Responder

Post mais votado

31/10/2018

O erro informa que a coluna DISPONIBILIDADE_SN nao existe na tabela.
Olhando seu código a tabela QUARTO_RESERVA não possui a coluna;

Para conhecimento, a tabela inserted é uma copia da tabela que voce está inserindo.

Fabiano Carvalho

Fabiano Carvalho
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar