none
Erro um tanto irritante na criação de uma trigger para auditoria. RRS feed

  • Pergunta

  • Boa noite, estou recebendo o seguinte erro :

    explicit value for the identity column in table 'colaboradores_log' can only be specified when a column list is used and IDENTITY_INSERT is ON.

    na criação desta trigger:

    CREATE TRIGGER [dbo].trg_col_log ON [dbo].[colaboradores] -- Tabela que a trigger será associada
    AFTER INSERT, UPDATE, DELETE AS
    BEGIN
        
        SET NOCOUNT ON
     
        DECLARE 
            @Login VARCHAR(100) = SYSTEM_USER, 
            @HostName VARCHAR(100) = HOST_NAME(),
            @Data DATETIME = GETDATE()
            
     
        IF (EXISTS(SELECT * FROM Inserted) AND EXISTS (SELECT * FROM Deleted))
        BEGIN
            
            INSERT INTO colaboradores_log
            SELECT @Data, @Login, @HostName, 'UPDATE', *
            FROM Inserted
     
        END
        ELSE BEGIN
     
            IF (EXISTS(SELECT * FROM Inserted))
            BEGIN
     
                INSERT INTO colaboradores_log
                SELECT @Data, @Login, @HostName, 'INSERT', *
                FROM Inserted
     
            END
            ELSE BEGIN
     
                INSERT INTO colaboradores_log
                SELECT @Data, @Login, @HostName, 'DELETE', *
                FROM Deleted
     
            END
     
        END
     
    END

    esta é a tabela colaboradores_log:

    CREATE TABLE colaboradores_log (
        Id INT IDENTITY(1, 1),
        Dt_Atualizacao DATETIME DEFAULT GETDATE(),
        [Login] VARCHAR(100),
        Hostname VARCHAR(100),
        Operacao VARCHAR(20),
    sequencia int, 
    cod_cadastro int,
    comissao decimal(9,2),
    senha varchar(20),
    acessa_sistema int,
    tipo int,
    cep varchar(8),
    endereco varchar(200),
    bairro varchar(100),
    complemento varchar(100),
    cidade varchar(100),
    status_sistema int,
    status_colaborador int,
    fone_principal varchar(11),
    username varchar(20),
    uf int
    )

    alguem faz ideia do que seja este maldito erro? e como resolve-lo? Obrigado pela ajuda desde já.

    terça-feira, 27 de fevereiro de 2018 23:40

Respostas

Todas as Respostas

  • Olá Leonardo,

    como está a estrutura da sua tabela COLABORADORES.

    Abs!


    Leandro de Agostini MCTS - Web Application, Framework 4

    quarta-feira, 28 de fevereiro de 2018 01:25
  • Deleted
    quarta-feira, 28 de fevereiro de 2018 01:25
  • Bom dia José, obrigado pela sua resposta!

    Pra te falar a verdade, talvez eu nao utilize a coluna ID na auditoria, é só mais pra registro mesmo.. 

    Estou começando agora no SQL server, sou programador ORACLE FORMS, entao está um pouco complicado, pois pl/sql e sql server sao bem diferentes!! rsrs.

    Mas vou seguir suas dicas, me clareou bastante coisa!!

    Muito obrigado meu amigo.

    sábado, 3 de março de 2018 13:38
  • Bom dia Leandro, a estrutura da tabela COLABORADORES é esta: 

    CREATE TABLE COLABORADORES(

    sequencia int not null identity(1,1), 
    cod_cadastro int,
    comissao decimal(9,2),
    senha varchar(20),
    acessa_sistema int,
    tipo int,
    cep varchar(8),
    endereco varchar(200),
    bairro varchar(100),
    complemento varchar(100),
    cidade varchar(100),
    status_sistema int,
    status_colaborador int,
    fone_principal varchar(11),
    username varchar(20),
    uf int
    )

    sábado, 3 de março de 2018 13:39