none
Triggers RRS feed

  • Pergunta

  • Olá Srs,

    Tenho 2 tabelas  ex: TB_CASA e TB_CASA_RESERVA, preciso que quando ocorrer um insert na
    TB_CASA automaticamente ocorra um insert na tabela TB_CASA_RESERVA.

    Como eu tentei e não deu certo:

    CREATE TABLE CASA
    (
        NUMERO INT,
        NOME NVARCHAR(20)
    )

    CREATE TABLE CASA_RESERVA
    (
        NUMERO INT,
        NOME NVARCHAR(20)
    )


    CREATE TRIGGER INSERT_CASA_RESERVA
        ON CASA
    FOR INSERT
    AS
        BEGIN
            INSERT INTO CASA_RESERVA VALUES(SELECT NUMERO, NOME FROM INSERTED)
        END

    Ocorre o seguinte erro:

    Msg 156, Level 15, State 1, Procedure INSERT_CASA_RESERVA, Line 6
    Incorrect syntax near the keyword 'SELECT'.
    Msg 102, Level 15, State 1, Procedure INSERT_CASA_RESERVA, Line 6
    Incorrect syntax near ')'.
    terça-feira, 19 de agosto de 2008 16:33

Respostas

  • Olá,

     

    Tente o seguinte na trigger:

     

    CREATE TRIGGER INSERT_CASA_RESERVA

    ON CASA

    AFTER INSERT

    AS

     

       INSERT INTO CASA_RESERVA(NUMERO, NOME)

       SELECT NUMERO, NOME FROM INSERTED

     

    Att.

     

    Ari C. Raimundo

    terça-feira, 19 de agosto de 2008 17:05

Todas as Respostas

  •  

    insert from nao tem value segue:

     


     

    CREATE TABLE CASA
    (
        NUMERO INT,
        NOME NVARCHAR(20)
    )

    CREATE TABLE CASA_RESERVA
    (
        NUMERO INT,
        NOME NVARCHAR(20)
    )


    CREATE TRIGGER INSERT_CASA_RESERVA
        ON CASA
    FOR INSERT
    AS
        BEGIN
            INSERT INTO CASA_RESERVA SELECT NUMERO, NOME FROM INSERTED
        END

     

    terça-feira, 19 de agosto de 2008 16:59
  • Boa Tarde,

     

    Não há nada de errado com a trigger, mas sua instrução de INSERT está em não conformidade com os padrões. Tente da seguinte forma

     

    Code Snippet

    INSERT INTO CASA_RESERVA (NUMERO, NOME)

    SELECT NUMERO, NOME FROM INSERTED

     

     

    [ ]s,

     

    Gustavo

    terça-feira, 19 de agosto de 2008 16:59
  • Colla,

     

    É um pequeno detalhe, mas que podem fazer uma diferença muito grande para quem esta tentando entender o que a sua linha Insert esta fazendo.

     

    terça-feira, 19 de agosto de 2008 17:01
  • Olá,

     

    Tente o seguinte na trigger:

     

    CREATE TRIGGER INSERT_CASA_RESERVA

    ON CASA

    AFTER INSERT

    AS

     

       INSERT INTO CASA_RESERVA(NUMERO, NOME)

       SELECT NUMERO, NOME FROM INSERTED

     

    Att.

     

    Ari C. Raimundo

    terça-feira, 19 de agosto de 2008 17:05