Usuário com melhor resposta
Bloquear a Alteração de um Campo

Pergunta
-
Boa Tarde Pessoal,
Estou com um problema no sistema da empresa que já está me tirando do sério e quem sabe vocês poderiam me ajudar.
Tenho uma tabela de parâmetros na qual informamos todos as funções que os caixas da loja executam.
Nesta tabela, tenho uma coluna chamada "PARÂMETRO" com uma linha chamada "EFETUA_VENDA" e tenho uma outra coluna chamada "VALOR_ATUAL" com a resposta ao PARÂMETRO "EFETUA VENDA", que no nosso caso é .T. ou .F. (True ou False).
Porém o valor True fica sendo alterado diversas vezes por dia para False, e assim que o caixa é reiniciado, o mesmo não consegue efetuar vendas. Já tentei diversas vezes descobrir o motivo do valor se alterar, mas infelizmente não consegui.
Gostaria de saber, se existe alguma forma de eu bloquear este valor como TRUE, para que ele fique sempre assim e não seja mais alterado (a não ser que eu realmente faça o update para atualiza-lo)
Desde já, agradeço a atenção de todos!
- Tipo Alterado Giovani Cr terça-feira, 15 de abril de 2014 13:51
- Tipo Alterado Giovani Cr terça-feira, 15 de abril de 2014 13:51
- Tipo Alterado Durval RamosModerator terça-feira, 20 de maio de 2014 23:23 Pergunta com definição de resposta
Respostas
-
Douglas,
Crie uma trigger na sua tabela para evitar o UPDATE quando ocorrer alterações nesta consulta. Veja um exemplo abaixo considerando que o nome da sua tabela "TB_PARAMETRO":
ALTER TRIGGER [dbo].[TU_PARAMETRO] ON [dbo].[TB_PARAMETRO] AFTER UPDATE AS BEGIN IF UPDATE(VALOR_ATUAL) BEGIN RAISERROR ('ALTERAÇÃO INDEVIDA !', 16, 10); ROLLBACK END END GO
Quando você precisar alterar este campo, basta desabilitar à Trigger.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Editado Durval RamosModerator quarta-feira, 9 de abril de 2014 19:07 Complemento de informação
- Sugerido como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:52
- Sugerido como Resposta Durval RamosModerator terça-feira, 20 de maio de 2014 23:24
- Marcado como Resposta Durval RamosModerator sexta-feira, 20 de junho de 2014 02:44
Todas as Respostas
-
-
-
Porém o valor True fica sendo alterado diversas vezes por dia para False, e assim que o caixa é reiniciado, o mesmo não consegue efetuar vendas. Já tentei diversas vezes descobrir o motivo do valor se alterar, mas infelizmente não consegui.
Me surgiu uma dúvida nesta parte.
Não existe alguma função no sistema que esteja dando um update neste campo?
- Editado Advaldo Mesquita Moreira Junior quarta-feira, 9 de abril de 2014 17:13
-
Douglas,
Crie uma trigger na sua tabela para evitar o UPDATE quando ocorrer alterações nesta consulta. Veja um exemplo abaixo considerando que o nome da sua tabela "TB_PARAMETRO":
ALTER TRIGGER [dbo].[TU_PARAMETRO] ON [dbo].[TB_PARAMETRO] AFTER UPDATE AS BEGIN IF UPDATE(VALOR_ATUAL) BEGIN RAISERROR ('ALTERAÇÃO INDEVIDA !', 16, 10); ROLLBACK END END GO
Quando você precisar alterar este campo, basta desabilitar à Trigger.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Editado Durval RamosModerator quarta-feira, 9 de abril de 2014 19:07 Complemento de informação
- Sugerido como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:52
- Sugerido como Resposta Durval RamosModerator terça-feira, 20 de maio de 2014 23:24
- Marcado como Resposta Durval RamosModerator sexta-feira, 20 de junho de 2014 02:44
-