Usuário com melhor resposta
Erro de INSERT

Pergunta
-
Fiz um relacionamento de dependência, entre duas tabelas, uma chamada GUIA e possui uma chave estrangeira GuiaNumero, e outra CIH possuindo uma chave primária GuiaNumero, a tabela GUIA é mandatória, ou seja, o q eu apagar nela deve ser apagado na CIH, mas a tabela CIH somente é preenchida após uma atualização na tabela GUIA, ou seja, no momento em que eu insiro informações na GUIA, a CIH não será preenchida, mas depois de algum tempo (podem ser dias ou meses) obrigatóriamente a tabela GUIA recebe uma atualização, após essa atualização a tabela CIH deve ser obrigatoriamente preenchida, mas ao fazer isso, o banco retorna o seguinte erro:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_CIH_Guia". The conflict occurred in database "dbVFGestaoHospitalar", table "dbo.Guia", column 'GuiaNumero'.
Como faço pra corrigir isso? Tenho que desfazer o relacionamento e colocar a exclusão da tabela CIH por meio da minha aplicação?
OBS: Pra que vocês entendam, a tabela GUIA refere-se a entrada de internação de um paciente, a qual é atualizada no dia da alta deste, e são fornecidas as informações de internação na tabela CIH.
Respostas
-
Olá,
Para inserir registros no campo GuiaNumero da tabela CIH você deve antes ter esse código na tabela Guia.
O erro e violação de constraint é justamente isso. Você está tentando inserir um GuiaNumero na tabela CIH que não existe na tabela GUIA
Abraços
Todas as Respostas
-
-
-
-
Tabela Guia:
GuiaId
GuiaNumero (varchar(44))
ProntId
NomeProntuario
TBConvenio_Codigo
TBConvenio_Sigla
usuLogin
TBConfigura_Codigo
GuiaNrGuia
GuiaDtEntrada
GuiaDtSaida
GuiaHsEntrada
GuiaHsSaida
GuiaDiagnostico
GuiaTratamento
GuiaForma
GuiaNomeResponsavel
GuiaRg
GuiaCPF
GuiaEndereco
GuiaOrgao
GuiaMatricula
GuiaQtde
GuiaValor
GuiaIndicacao
GuiaTipo
GuiaJaFaturou
GuiaDataLanc
GuiaGlosa
GuiaDataGlosa
GuiaAge
GuiaContaCorrente
GuiaNrCC
GuiaAcomodacao
AcoIdentificacao
TBCentroCusto_Codigo
TBCentroCusto_Descricao
TBFuncionario_Codigo
TBFuncionario_Nome
TBFuncionario_Login
GuiaUltimoUsuario
GuiaDataLancamento
GuiaHoraLancamento
TBAmb_Codigo
TBMedicos_Crm
TBMedicos_Nome
TBEspecialidade_Codigo
TBEspecialidade_Descricao
GuiaIdade
GuiaAutorizacao
GuiaFone
GuiaCidade
GuiaUf
PLANO_Codigo
PLANO_Nome
GuiaQtdeDiariasSol
GuiaQtdeDiariasAut
GuiaDtProrrogacao
GuiaRespProrrogacao
GuiaQtdeSolProrrogacao
GuiaQtdeAutProrrogacao
GuiaDtAutorizacao
GuiaDtValAutorizacao
GuiaSenhaProrrogacao
GuiaCrmIndicacao
CidCodigo
CidGrupoNome
CidItemDescricao
GuiaValidadeCartaoTabela CIH:
GuiaNumero (varchar(44))
CIH_CNES
CIH_Nome
CIH_Logradouro
CIH_Numero
CIH_Complemento
CIH_CodMunicipio
CIH_UF
CIH_CEP
CIH_DtNascimento
CIH_Sexo
CIH_CNS
CIH_CodProcedimento
CIH_CIDPrincipal
CIH_CIDSecundario
CIH_DtEntrada
CIH_DtSaida
CIH_TipoAlta
CIH_Convenio
CIH_DescProcedimento
CIH_ANSRegOpera
CIH_CNPJOpera
CIH_Matricula
CIH_DocObito
CIH_QtdeNascidos
CIH_DocDN1
CIH_DocDN2
CIH_DocDN3
CIH_DocDN4
CIH_DocDN5
CIH_DiasUTI
CIH_ProntId
CIH_CompetenciaOBS: Estou usando o SQL Server 2005 Enterprise
-
Olá,
Para inserir registros no campo GuiaNumero da tabela CIH você deve antes ter esse código na tabela Guia.
O erro e violação de constraint é justamente isso. Você está tentando inserir um GuiaNumero na tabela CIH que não existe na tabela GUIA
Abraços
-
Olá Leandro,
Eu fiquei um pouco confuso quanto a sua explicação. Me parece que a tabela guia tem que possuir os registros antes da CIH, mas pela explicação, isso parece ser o contrário:
"GUIA e possui uma chave estrangeira GuiaNumero"
"CIH possuindo uma chave primária GuiaNumero"
A tabela que possuir a chave estrangeira deverá ter o insert posteriormente. Se isso não refletir sua realidade, há uma erro de modelagem.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
-