Estou a implementar um sistema de histórico para uma aplicação parametrizável ao nível do utilizador. O que pretendo fazer é uma tabela que armazena os campos que se pretende auditar que contem os seguintes campos:
- TableField
- TableName
- DescriptionToShow
ao inserir ou eliminar um campo para histórico é executado um trigger que invoca um procedimento e caso seja um insert irá criar/actualizar um tabela 'TableName'_History e criar um trigger para 'vigiar' as alterações naquele campo.
Isto no final é um bocado mais complexo, mas agora estou com o seguinte problema:
Este stored procedure é só para testes,
ALTER PROCEDURE [dbo].[create_track_changes_field]
Pergunta
moliveira
Olá,
Estou a implementar um sistema de histórico para uma aplicação parametrizável ao nível do utilizador. O que pretendo fazer é uma tabela que armazena os campos que se pretende auditar que contem os seguintes campos:
- TableField
- TableName
- DescriptionToShow
ao inserir ou eliminar um campo para histórico é executado um trigger que invoca um procedimento e caso seja um insert irá criar/actualizar um tabela 'TableName'_History e criar um trigger para 'vigiar' as alterações naquele campo.
Isto no final é um bocado mais complexo, mas agora estou com o seguinte problema:
Este stored procedure é só para testes,
Na execução do procedimento a linha a vermelho está a dar o seguinte erro:
Msg 105, Level 15, State 1, Procedure ClientName, Line 14
Unclosed quotation mark after the character string 'd'.
Msg 102, Level 15, State 1, Procedure ClientName, Line 14
Incorrect syntax near 'd'.
Ao meter a linha em comentário, o trigger é criado da seguinte forma:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[ClientName] ON [dbo].[Client]
AFTER UPDATE, INSERT, DELETE
AS
DECLARE @OldValue varchar(150)
DECLARE @NewValue varchar(150)
DECLARE @LineId int
DECLARE @UserId int
DECLARE @Description nvarchar(100)
SELECT @OldValue = Name FROM DELETED;
SELECT @NewValue = Name FROM INSERTED;
SELECT @LineId = Id FROM INSERTED;
SELECT @UserId = UpdatedBy FROM INSERTED;
--SET @Description = (SELECT [DescriptionToShow] FROM
Não assume a linha por completo.
alguém me consegue ajudar?
Obrigado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.