Usuário com melhor resposta
Erro um tanto irritante na criação de uma trigger para auditoria.

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
ENDesta é 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á.
Respostas
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 28 de fevereiro de 2018 12:36
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 28 de fevereiro de 2018 21:00
Todas as Respostas
-
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 28 de fevereiro de 2018 12:36
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 28 de fevereiro de 2018 21:00
-
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.
-
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
)