Problema nas diretiva após a atualização
Problema
Após a atulização parece que a configuração de algumas diretivas sumiram.
Contexto
Foi detectado um problema que está duplicando os registros de diretiva
Solução
Não existe ainda solução definitiva mas o seguinte script ajuda a encontrar os problemas e corrigir:
BEGIN TRAN
if exists(
select nome from parametro p
group by nome
having count(0) > 1) begin
select nome into #duplicado from parametro p
group by nome
having count(0) > 1
select p.id, p.nome into #erro from parametro p
inner join #duplicado pp
on pp.nome = p.nome
select distinct e.id, e.nome into #conf_errado from #erro e
inner join USUARIO_PARAMETRO u
on e.id = u.PARAMETRO_ID
order by nome
Select 'Nesta parte é necessário ajustar manulamente a usuario_parametro'
select p.id as parametro_id, p.nome, u.valor, u.empresa_id, u.id, g.id usuario_id, g.nome from usuario_parametro u
inner join parametro p
on u.parametro_id = p.id
inner join #conf_errado c
on p.id = c.id
left outer join grupo_usuario g
on u.GRUPO_USUARIO_ID = g.id
order by 2, g.nome, u.empresa_id
--delete from usuario_parametro where id in (44365, 44371, 44366, 44370, 44371)
--exemplo:
--update usuario_parametro set parametro_id = 2458 where id = 18895
/*Depois de deixar as configurações de usuario_parametro sem parametro repetido
pode descomentar o sql abaixo que será feito o ajuste*/
/*
update u set
parametro_id = (select min(e.id) from #erro e where e.nome = p.nome)
from usuario_parametro u
inner join parametro p
on u.parametro_id = p.id
inner join #erro e
on p.id = e.ID
delete p from parametro p
inner join #erro e
on p.nome = e.nome
inner join (select nome, min(id) id from #erro group by nome) ee
on p.nome = ee.nome
and p.id <> ee.id
select distinct nome from #erro
select * from parametro p
inner join #erro e
on e.id = p.id
*/
end
rollback